cmake 编译 Cannot specify compile options for target "" which is not built by this project.
时间: 2024-02-16 07:05:20 浏览: 23
这个错误通常是由于在CMakeLists.txt文件中没有正确定义目标项目导致的。请检查您的CMakeLists.txt文件,确保您已正确设置目标项目。您可以通过在CMakeLists.txt文件中使用`add_executable`或`add_library`命令来定义目标项目。例如,如果您想要添加一个可执行文件,您可以使用以下命令:
```
add_executable(my_executable main.cpp)
```
如果您确认已正确定义了目标项目,则可能是由于其他因素引起的问题。请提供更多上下文和详细信息,以便我能够更好地帮助您解决问题。
相关问题
cmake报错:Cannot specify link libraries for target "hello_lib" which is not built by this project.
这个错误通常是由于在 CMakeLists.txt 文件中的 target_link_libraries() 命令中指定了不存在的库,或者是指定了当前项目并未生成的库。
解决方法如下:
1. 检查 target_link_libraries() 命令中指定的库是否存在,并且是否已经正确地添加到项目中。
2. 确保在 CMakeLists.txt 文件中,先添加并构建需要的库,再将其链接到目标。
比如,假设你的项目包含两个库,一个是 lib1,另一个是 lib2,同时你的项目还生成了可执行文件 hello。那么,在 CMakeLists.txt 文件中,应该按照以下顺序添加和构建库:
```
add_library(lib1 ...)
add_library(lib2 ...)
add_executable(hello ...)
```
然后,再将库链接到目标:
```
target_link_libraries(hello lib1 lib2)
```
这样就能够避免 "Cannot specify link libraries for target" 的错误了。
希望这能帮助你解决问题!
CMake Error at CMakeLists.txt:50 (target_link_libraries): Cannot specify link libraries for target "DesensitiseJNI" which is not built by this project.
这个错误通常是因为在使用 target_link_libraries 命令时,指定了一个不存在的目标。在你的错误信息中,错误提示指出 "DesensitiseJNI" 这个目标不是通过当前项目构建的。
解决这个问题,你需要先确保 "DesensitiseJNI" 这个目标是通过当前项目构建的,如果不是,则需要先将该目标的构建加入到 CMakeLists.txt 文件中。如果 "DesensitiseJNI" 目标确实是由当前项目构建的,那么你需要检查一下 target_link_libraries 命令中是否有拼写错误或者其他的语法错误。
以下是一些可能有用的调试步骤:
1. 检查 CMakeLists.txt 文件中是否有构建 "DesensitiseJNI" 目标的命令,例如 add_library 或 add_executable。
2. 确认你使用的是正确的目标名称。你可以通过命令行输出或者 CMake 编译日志来确定目标名称是否正确。
3. 检查 target_link_libraries 命令是否正确指定了库文件或目标名称。如果有多个库文件或目标名称,需要使用空格或分号来分隔它们。
如果你需要更多的帮助,请提供更多的上下文信息,例如完整的 CMakeLists.txt 文件内容或者更详细的错误信息。