Sophus 編譯錯誤

2021-07-29 23:36:39 字數 1451 閱讀 4965

cmakelists.txt呼叫sophus的語法如下:

find_package(sophus required)

target_link_libraries($

$)

編譯sophus時出現如下錯誤:

../lib/libmyslam.so: undefined reference to `sophus::so3::so3(double, double, double)'

../lib/libmyslam.so: undefined reference to `sophus::se3::operator*(eigen::matrixconst&) const'

../lib/libmyslam.so: undefined reference to `sophus::se3::se3(sophus::so3 const&, eigen::matrixconst&)'

../lib/libmyslam.so: undefined reference to `sophus::se3::operator*(sophus::se3 const&) const'

../lib/libmyslam.so: undefined reference to `sophus::se3::log() const'

../lib/libmyslam.so: undefined reference to `sophus::se3::operator=(sophus::se3 const&)'

../lib/libmyslam.so: undefined reference to `sophus::se3::inverse() const'

../lib/libmyslam.so: undefined reference to `sophus::se3::se3()'

../lib/libmyslam.so: undefined reference to `sophus::se3::se3(sophus::se3 const&)'

collect2: error: ld returned 1 exit status

原因分析:

安裝sophus時,有個lib檔案「libsophus.so」會出現在/usr/local/lib/libsophus.so (本人編譯時最後執行了 sudo make install, 因此在系統資料夾裡面有該lib檔案)。 當執行find_package(sophus required)時,libsophus.so 應該被鏈結到 sophus_libraries, 但cmake卻沒鏈結上(原因未知),因此出現這個錯誤。

find_package(sophus required)

set(sophus_libraries libsophus.so)

target_link_libraries($

$)

注意: set後面是小括號」()」, 而非」{}」

sophus編譯錯誤,未定義相關函式

視覺slam14講中,在編譯完sophus庫後,使用sudo make install安裝後,經過編譯發現錯誤,如下圖 這是因為安裝後打libsophus.so 沒有被cmake鏈結到 sophus libraries,因此出現這個錯誤。在cmakelists中新增如下語句 include dire...

mk編譯錯誤

要在工程 中加乙個巨集去控制 在config.mk中定義這個巨集 enable it6263 1 在compile option.mk中根據這個值來定義巨集 ifeq enable it6263 1 cc opts denable it6263 1 else cc opts denable it62...

Greta 編譯錯誤

背景 greta2.6.4在vs2008編譯通過,在vs2013中,編譯出現以下錯誤 1 regexpr2.cpp 1 c users administrator desktop greta greta restack.h 56 error c2332 struct 缺少標記名 1 c users ...