CMake Error at CMakeLists.txt:99 (target_link_libraries): The plain signature for target_link_libraries has already been used with the target "sipManager". All uses of target_link_libraries
时间: 2023-08-03 16:52:36 浏览: 47
这个错误提示表明在 CMakeLists.txt 文件的第 99 行,你尝试使用已经被使用过的 "target_link_libraries" 函数来链接 "sipManager" 目标。这可能是因为你在同一个 CMakeLists.txt 文件中多次调用 "target_link_libraries" 函数来链接同一个目标。你可以通过检查 CMakeLists.txt 文件来找到重复的 "target_link_libraries" 函数,并将它们删除或者合并,使每个目标只链接一次。
相关问题
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 文件内容或者更详细的错误信息。
CMake Error at CMakeLists.txt:89 (target_link_libraries): The INTERFACE, PUBLIC or PRIVATE option must appear as the second argument, just after the target name.
这个错误是因为在调用 `target_link_libraries` 命令时,没有正确指定链接选项的位置。
在 CMake 中,`target_link_libraries` 命令的语法如下:
```cmake
target_link_libraries(target-name [PRIVATE|PUBLIC|INTERFACE] library-name1 [library-name2 ...])
```
其中,`target-name` 表示要链接的目标名称,`library-name1`、`library-name2` 等表示要链接的库名称。选项 `PRIVATE`、`PUBLIC` 和 `INTERFACE` 用于指定链接选项的作用范围,必须紧跟在 `target-name` 后面。
如果你遇到了类似于 "CMake Error at CMakeLists.txt:89 (target_link_libraries): The INTERFACE, PUBLIC or PRIVATE option must appear as the second argument, just after the target name." 的错误,通常是因为在调用 `target_link_libraries` 命令时,没有正确指定链接选项的位置,导致 CMake 无法正确解析命令。
为了解决这个问题,你需要将 `PRIVATE`、`PUBLIC` 或 `INTERFACE` 选项放在目标名称之后,例如:
```cmake
target_link_libraries(your-target-name PRIVATE library-name1 library-name2 ...)
```
这样就可以正确指定链接选项的位置,避免出现上述错误。