編譯問題彙總

2021-09-22 04:08:13 字數 2123 閱讀 5702

每次在編譯各類第三方庫的時候都會碰到很多問題,基本上都是通過google解決,其實簡單反思一下就會發現是對於系統了解的不夠,對於各類標準也是了解甚少。所以一而再再而三發生的問題其實是可以盡量去避免的。

cmake也許是最常用的跨平台編譯組織工具了,像我在中也已經提到過的,首先得學會自己看以及這些檔案中的巨集定義,指令含義等.其次是要明白針對不同的專案,需要哪些型別的庫,以及對應的庫的版本都是多少.

rm -f cmakecache.txt

export ilmbase_root=/usr/

export openexr_root=/usr/

export boost_root=/usr/lib/x86_64-linux-gnu/

export glfw3_root=/usr/

export blosc_root=/usr/local/include/

export cppunit_root=/usr/

export tbb_root=/usr/

cmake \

-d python_library=/usr/lib/x86_64-linux-gnu/libpython2.7.so \

-d python_include_dir=/usr/include/python2.7 \

-d cmake_cxx_flags=-std=c++11 \

-d minimum_boost_version=1.52 \

-d ilmbase_namespace_versioning=off \

-d openexr_namespace_versioning=off \

-d use_glfw3=on \

-d blosc_use_static_libs=on \

-d blosc_blosc_library=/usr/local/lib/libblosc.so \

-d glfw3_glfw_library=/usr/lib/x86_64-linux-gnu/libglfw.so \

-d ilmbase_half_library=/usr/lib/x86_64-linux-gnu/libhalf.so \

-d ilmbase_iex_library=/usr/lib/x86_64-linux-gnu/libiex.so \

-d ilmbase_ilmthread_library=/usr/lib/x86_64-linux-gnu/libilmthread.so \

-d openexr_ilmimf_library=/usr/lib/x86_64-linux-gnu/libilmimf.so \

-d tbb_library_path=/usr/lib/x86_64-linux-gnu \

-d tbb_tbb_library=/usr/lib/x86_64-linux-gnu/libtbb.so \

-d tbb_tbbmalloc_library=/usr/lib/x86_64-linux-gnu/libtbbmalloc.so \

-d cmake_install_prefix=/usr/local \

..

以上是乙個最近的的編譯檔案,其中有很多要調整的部分,最後還是借助qt的ide進行編譯,有很多自定義的變數通過set寫在cmakelists.txt中.

在編譯鏈結第三方庫的時候,忘記了這個庫還依賴與另外乙個庫,而且這個庫是需要自己引入的.在當時收到的報錯資訊是:

/usr/bin/ld: /tmp/cckvyv4m.o: undefined reference to symbol '_zn4half5_elute'

//usr/lib/x86_64-linux-gnu/libhalf.so.12: error adding symbols: dso missing from command line

collect2: error: ld returned 1 exit status

這是表示我們的編譯器找不到libhalf這個庫1

,所以我們需要額外去引入這個庫,才能使得編譯順利進行.

dso為dynamic shared object, 或者換句話說是shared library, 所以如果這個缺少的話,說明是動態鏈結庫沒有鏈結上,所以我們需要手動去額外鏈結.

> ↩

caffe編譯問題彙總

每次編譯caffe出現的問題基本都不一樣,在不同的系統和硬體平台上都會出現不一樣的問題,這裡就把每次編譯出現的問題總結一下。一看就知道是opencv庫出現問題,這裡是缺少了opencv imgcodecs庫,在makefile檔案中的 libraries opencv core opencv hig...

Makefile編譯問題彙總

最近使用makefile編譯遇到了些問題,反覆地排查了4天多,才解決,要處理的問題很簡單,就是把一堆.c檔案編譯打包成.so,然後再把.so和demo.o打包成可執行檔案,遇到了下面 三個問題,總結一下 1 問題描述在這裡 原因 在生成可執行檔案的時候,加入了 shared引數,這時生成的並不是可執...

編譯核心遇到的問題彙總

ubutnu12.04編譯android4.2 error while loading shared libraries libz.so.1 ubutnu12.04編譯android4.2 error while loading shared libraries libz.so.1 cannot o...