cmakelists.txt呼叫sophus的語法如下:
編譯sophus時出現如下錯誤:find_package(sophus required)
target_link_libraries($
$)
原因分析:../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卻沒鏈結上(原因未知),因此出現這個錯誤。
注意: set後面是小括號」()」, 而非」{}」find_package(sophus required)
set(sophus_libraries libsophus.so)
target_link_libraries($
$)
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 ...