gcc 編譯 cpp 檔案,新增共享庫

2021-08-16 14:25:05 字數 4646 閱讀 5409

使用下述命令新增共享庫。

-wl,-rpath,/home/mc/myprojects/face_class_global/lib:/home/mc/myprojects/face_class_global/lib/cuda-7.5:/usr/lib/x86_64-linux-gnu 

注意:多個庫之間用冒號「:」分開,

如果出現編譯錯誤,如下:

那麼就再後面再新增一句具體的路徑:/usr/lib/x86_64-linux-gnu/libglog.so.0

個人的理解是: 

/usr/lib/x86_64-linux-gnu/libglog.so.0 這個路徑讓gcc在編譯時找到共享庫;

-wl,-rpath,/home/mc/myprojects/face_class_global/lib:/home/mc/myprojects/face_class_global/lib/cuda-7.5:/usr/lib/x86_64-linux-gnu 是讓程式在執行時找到共享庫。

#/usr/bin/c++    -std=c++11 -o2 main_test_os.cpp -o /home/mc/myprojects/face_class_global/main_test_os.exe  -l /home/mc/myprojects/face_class_global/lib -rdynamic -lseeta_facedet_lib -lseeta_fa_lib -lcaffe -lssl -lcrypto -ldhfdfr_v1_4 -lboost_system -wl,-rpath,/home/mc/myprojects/face_class_global/lib -i /home/mc/myprojects/face_class_global/include/  /home/mc/myprojects/face_class_global/lib/opencv/libopencv_videostab.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_ts.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_superres.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_stitching.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_ocl.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_gpu.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_contrib.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_photo.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_legacy.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_video.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_objdetect.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_ml.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_calib3d.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_features2d.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_highgui.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_imgproc.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_flann.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_core.so.2.4.8 /home/mc/myprojects/face_class_global/lib/cuda-7.5/libcudart.so.7.5  /home/mc/myprojects/face_class_global/lib/cuda-7.5/libcublas.so.7.5  /home/mc/myprojects/face_class_global/lib/cuda-7.5/libcurand.so.7.5

/usr/bin/c++    -std=c++11 -o2 ./src/face_alignment_bmc.cpp  ./src/asm.cpp  minimal4.cpp -o ./minimal5  -l /home/mc/myprojects/face_class_global/lib -rdynamic -lseeta_facedet_lib -lseeta_fa_lib -lcaffe -lcrypto -lboost_system -wl,-rpath,/home/mc/myprojects/face_class_global/lib:/home/mc/myprojects/face_class_global/lib/cuda-7.5:/usr/lib/x86_64-linux-gnu  -i /home/mc/myprojects/face_class_global/include/  /home/mc/myprojects/face_class_global/lib/opencv/libopencv_videostab.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_ts.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_superres.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_stitching.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_ocl.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_gpu.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_contrib.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_photo.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_legacy.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_video.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_objdetect.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_ml.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_calib3d.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_features2d.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_highgui.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_imgproc.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_flann.so.2.4.8 /home/mc/myprojects/face_class_global/lib/opencv/libopencv_core.so.2.4.8   -i /home/mc/myprojects/face_class_global/include/cuda-7.5  /usr/lib/x86_64-linux-gnu/libglog.so.0

#/home/mc/myprojects/face_class_global/lib/cuda-7.5/libcudart.so.7.5  /home/mc/myprojects/face_class_global/lib/cuda-7.5/libcublas.so.7.5  /home/mc/myprojects/face_class_global/lib/cuda-7.5/libcurand.so.7.5     /usr/lib/x86_64-linux-gnu/libglog.so.0   

gcc編譯 同時包含靜態庫和共享庫

hello.h標頭檔案 ifndef hello h define hello h void print hello endif hello.c原始檔 include hello.h include int main int argc,char argv test hadoop hello ls h...

gcc的標頭檔案和共享庫

gcc在進行編譯預處理時,要在工具鏈預設的一些頭檔案目錄中搜尋標頭檔案,這些目錄一般包括 usr include 和 usr local include linux的系統標頭檔案一般儲存在 usr include 目錄下,自己安裝的軟體的標頭檔案一般存放在 usr local include目錄下 ...

標頭檔案 gcc編譯

1 標頭檔案的包含方式 include 預設是從 usr include 目錄下搜尋檔案 include stdio.h include stdio.h 先在當前目錄下搜尋檔案,如果沒有,再去 usr include 下找 2 c語言的編譯步驟 預處理 預編譯 處理 開頭的內容,進行替換 執行巨集替...