C++ 当我使用Cmake编译文件时,它显示/usr/bin/ld:cannotfind-ltest。但是当我使用g++;要编译该文件,可以

C++ 当我使用Cmake编译文件时,它显示/usr/bin/ld:cannotfind-ltest。但是当我使用g++;要编译该文件,可以,c++,gcc,cmake,C++,Gcc,Cmake,这是src目录中的CMakeList.txt: 添加可执行文件(表达式ExpressionValue.cpp) 包含目录(/root/fengwu/code/headfiles/expression/INCLUDE) 链接目录(/root/fengwu/code/headfiles/expression/lib) 目标链接库(表达式测试) 当我在build目录中输入cmake..时,一切正常。在我输入make之后,它显示/usr/bin/ld:not find-ltest。但是,当我使用g++时

这是src目录中的CMakeList.txt:

添加可执行文件(表达式ExpressionValue.cpp) 包含目录(/root/fengwu/code/headfiles/expression/INCLUDE) 链接目录(/root/fengwu/code/headfiles/expression/lib) 目标链接库(表达式测试)

当我在build目录中输入
cmake..
时,一切正常。在我输入
make
之后,它显示
/usr/bin/ld:not find-ltest
。但是,当我使用g++时,它是可以的

g++表达式值.cpp -I/root/fengwu/code/headfiles/expression/include-L/root/fengwu/code/headfiles/expression/lib-ltest-o expr.out


从以下文件中:

该命令将仅应用于调用后创建的目标


对于make
link\u directories()
call work,您需要在
添加可执行文件()

之前移动它?至少CMakeLists.txt没有提到它。当我输入make VERBOSE=1时,它也是一样的,/usr/bin/ld:not find-ltest@用户1034749当然,我已经构建了我的库,当我使用g++时,我可以正确编译文件,并且它可以正确运行。CMakeLists.txt中的最后一行应该链接库@USR1234567对于verbose,我们对链接器调用感兴趣。请提供。为什么不使用CMake构建测试库?它位于构建目录中吗?我们缺少一些帮助您的信息。该库是在使用g++xxx.cpp-fPIC-shared-o libtest.so之前构建的。我只想用cmake链接这个库@usr1234567@mrbrant当前位置请接受答案,这样每个人都可以看到你的问题已经解决了。