当我使用Cmake编译文件时,它显示/usr/bin/ld:找不到-ltest.然而,当我使用g++编译文件时,它是可以

When I use Cmake to compile the file, it shows /usr/bin/ld: cannot find -ltest. However when I use g++ to compile the file, it is ok

本文关键字:文件 编译 然而 g++ -ltest usr 显示 Cmake bin ld 找不到      更新时间:2023-10-16

这是src目录中的CMakeList.txt:

ADD_EXECUTABLE(表达式表达式值.cpp)INCLUDE_DIRECTORIES(/root/fengwu/codes/headfiles/expression/INCLUDE)LINK_DIRECTORIES(/root/fengwu/coodes/headfiles/expression/lib)TARGET_LINK_LIBRARIES(表达式测试)

当我在build目录中输入cmake ..时,它是可以的。然后我输入make,它显示/usr/bin/ld: cannot find -ltest。然而,当我使用g++时,它是可以的。

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

来自link_directories:的文档

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

要使link_directories()调用工作,您需要将其移动到add_executable()之前。