1、關於gmtime_r、timegm的隱藏宣告錯誤,從系統的time.h中複製兩個函式引用到libzdb自己定義的time.h,程式碼如下:
extern struct tm *gmtime_r (const time_t *__restrict __timer, struct tm *__restrict __tp) __THROW; extern time_t timegm (struct tm *__tp) __THROW;
2、在eclipse for c/c++中編譯報C99錯誤,如下路徑中新增如下內容:
右擊專案->properities->c/c++ Build->setting->tool settings->GCC C Compiler右邊的“Command:”框中由原來的“gcc”改為“gcc --std=c99”;
3、INT32_MAX、INT32_MIN未宣告錯誤,加如下程式碼:
#include <stdint.h>
#include <inttypes.h>
4、遇到oracle控制程式碼等以OCI開頭的未定義問題 ,mysql等的未定義問題,以及collect2: 錯誤:ld 返回 1是庫未連線的問題。解決如下:
setting->complier->complier setting->other options中新增:`mysql_config --cflags` linker settings->link libraries中新增:libpthread.so.0 linker settings->other link options中新增: -L/oradb/ora10g/oracle/product/10.2.0/db_1/lib/ -lclntsh `mysql_config --libs`
5、遇到error while loading shared libraries: libdb2.so.11.1: cannot open shared object file: No such file or directory類似的錯誤
在/etc/ld.so.conf 檔案中新增: 所顯示這個動態連結庫的目錄,我這裡出現過libdb2.so.1和liblclntsh.so.11.1的錯誤,因此我新增了兩個路徑如下 /home/oracle/sqllib/lib64 /oracle/oraclebase/product/11.2.0/db_1/lib 然後執行命令ldconfig,可能會出現錯誤但是再執行程式已經可以執行了