Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
链接依赖于Opencv和Ceres解算器的静态库时,Opencv imread会导致liblapack中的链接器错误_Opencv_Cmake_Linker Errors_Imread_Ceres Solver - Fatal编程技术网

链接依赖于Opencv和Ceres解算器的静态库时,Opencv imread会导致liblapack中的链接器错误

链接依赖于Opencv和Ceres解算器的静态库时,Opencv imread会导致liblapack中的链接器错误,opencv,cmake,linker-errors,imread,ceres-solver,Opencv,Cmake,Linker Errors,Imread,Ceres Solver,我正在尝试使用CMake编译我自己的库,它依赖于OpenCV和Ceres Solver()。然而,在这样做的时候,当我将我的库链接到一些可执行文件时,我得到了链接器错误,特别是我认为OpenCV的imread函数是罪魁祸首,但问题也可能与Ceres有关 我使用的是Ceres版本1.14.0和OpenCV版本3.2.0 我已经发现,如果我在main中声明ceres::Solver::Summary,问题就不会存在了。我只是不明白为什么要这么做 我已经把我的问题归结为我能想到的最简单的例子: CMa

我正在尝试使用CMake编译我自己的库,它依赖于OpenCV和Ceres Solver()。然而,在这样做的时候,当我将我的库链接到一些可执行文件时,我得到了链接器错误,特别是我认为OpenCV的imread函数是罪魁祸首,但问题也可能与Ceres有关

我使用的是Ceres版本1.14.0和OpenCV版本3.2.0

我已经发现,如果我在main中声明ceres::Solver::Summary,问题就不会存在了。我只是不明白为什么要这么做

我已经把我的问题归结为我能想到的最简单的例子:

CMakeLists.txt main.cc
#包括“ceres/ceres.h”
#包括
int main(){
cv::imread(“a”,0);
//ceres::Solver::Summary什么都不做,只是修复链接;
}
我希望它编译时不会出现问题,但如果我将do_nothing_but_fix_链接注释掉,我将得到以下错误:

制作
find_package(OpenCV REQUIRED)
find_package(Ceres REQUIRED)
add_library(MyLib empty.cc empty.h)
target_include_directories(MyLib PUBLIC ${OpenCV_INCLUDE_DIRS} ${CERES_INCLUDE_DIRS})
target_link_libraries(MyLib PRIVATE ${OpenCV_LIBS} ${CERES_LIBRARIES})
# I also tried PUBLIC
add_executable(Main main.cc)
target_link_libraries(Main MyLib)
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_dgemoveT«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_zgemoveT«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_strscal«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_sscal«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_ssqtrans«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_zsqtrans«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_sgeset«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_sgemoveT«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_cGetNB«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_ctrscal«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_zgemaxnrm«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_cgemaxnrm«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_dscal«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_cgezero«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_dgezero«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_dgemaxnrm«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_csqtrans«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_ccplxdivide«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_ccplxinvert«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_dger«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_zcplxinvert«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_cgeru«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_zGetNB«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_sgescal«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_dtrscal«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_zgeset«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_sger«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_sgezero«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_sgemaxnrm«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_sGetNB«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_zgeru«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_cgemoveT«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_zcplxdivide«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_xerbla«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_dGetNB«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_zgezero«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_cgeset«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_dgeset«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_zscal«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_dgescal«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_cscal«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_ztrscal«
/usr/lib/x86_64-linux-gnu/liblapack.so: Warnung: undefinierter Verweis auf »ATL_dsqtrans«