C++ 未定义引用,但已链接库

C++ 未定义引用,但已链接库,c++,static-linking,undefined-reference,C++,Static Linking,Undefined Reference,我当前正在尝试添加在此处找到的RaspiCam库: 到此处找到的Apriltags库: 我解压了RaspiCam库并单独构建了它,然后复制并粘贴到AprilTags文件夹中。我的AprilTags文件夹现在如下所示: AprilTags build cmake CMakeLists.txt example LICENSE Makefile pod-build raspicam-0.1.6 README.txt src systems.txt tags raspicam-0.1.6文件夹中有

我当前正在尝试添加在此处找到的RaspiCam库:

到此处找到的Apriltags库:

我解压了RaspiCam库并单独构建了它,然后复制并粘贴到AprilTags文件夹中。我的AprilTags文件夹现在如下所示:

AprilTags build cmake CMakeLists.txt example LICENSE Makefile pod-build raspicam-0.1.6 README.txt src systems.txt tags
raspicam-0.1.6文件夹中有以下内容:

build Changelog CMakeLists.txt CMakeLists.txt.user cmake_uninstall.cmake.in dependencies README src utils
我将raspicam中的库添加到AprilTags中代码的顶部,如下所示:

#include <raspicam/raspicam_cv.h>
它给出了以下错误:

CMakeFiles/apriltags_demo.dir/apriltags_demo.cpp.o: In function `main':
apriltags_demo.cpp:(.text.startup+0x2d4): undefined reference to `raspicam::RaspiCam_Cv::RaspiCam_Cv()'
apriltags_demo.cpp:(.text.startup+0x324): undefined reference to `raspicam::RaspiCam_Cv::~RaspiCam_Cv()'
apriltags_demo.cpp:(.text.startup+0x384): undefined reference to `raspicam::RaspiCam_Cv::~RaspiCam_Cv()'
collect2: error: ld returned 1 exit status
example/CMakeFiles/apriltags_demo.dir/build.make:139: recipe for target 'bin/apriltags_demo' failed
make[3]: *** [bin/apriltags_demo] Error 1
CMakeFiles/Makefile2:193: recipe for target 'example/CMakeFiles/apriltags_demo.dir/all' failed
make[2]: *** [example/CMakeFiles/apriltags_demo.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make[1]: *** [all] Error 2
Makefile:27: recipe for target 'all' failed
make: *** [all] Error 2

作为未定义的引用。我在网上做了一些研究,发现了一个类似的问题:解决方案是改变链接的顺序。然而,由于这两个项目都是使用CMake构建的,我不知道您将如何更改链接顺序。老实说,我在用C++构建方面有点迷失了,所以任何帮助或指导都是非常值得赞赏的。谢谢

注意-如果可能的话,我会对此发表评论,需要更多的代表:

  • 你有没有试过用“”作为你的收信人?用于预定义目录,而“”遵循相对路径

  • 这看起来像是一个多余的检查,但您是否确保库的.lib和相应的.h文件都位于同一目录中?很多人都有.lib,但是缺少了lib的.h


当我忘记了这两个问题时,无论是在CuScript中还是在VisualC++中,通过VStudio

是的,我在Rab莓文件夹中都有.h文件和.LIB文件。同时更改“”也会产生相同的错误。
CMakeFiles/apriltags_demo.dir/apriltags_demo.cpp.o: In function `main':
apriltags_demo.cpp:(.text.startup+0x2d4): undefined reference to `raspicam::RaspiCam_Cv::RaspiCam_Cv()'
apriltags_demo.cpp:(.text.startup+0x324): undefined reference to `raspicam::RaspiCam_Cv::~RaspiCam_Cv()'
apriltags_demo.cpp:(.text.startup+0x384): undefined reference to `raspicam::RaspiCam_Cv::~RaspiCam_Cv()'
collect2: error: ld returned 1 exit status
example/CMakeFiles/apriltags_demo.dir/build.make:139: recipe for target 'bin/apriltags_demo' failed
make[3]: *** [bin/apriltags_demo] Error 1
CMakeFiles/Makefile2:193: recipe for target 'example/CMakeFiles/apriltags_demo.dir/all' failed
make[2]: *** [example/CMakeFiles/apriltags_demo.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make[1]: *** [all] Error 2
Makefile:27: recipe for target 'all' failed
make: *** [all] Error 2