SET_TARGET_PROPERTIES(
wtdbo
PROPERTIES
VERSION ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR}
SOVERSION ${WTDBO_SOVERSION}
DEBUG_POSTFIX "d"
)
Run Code Online (Sandbox Code Playgroud)
错误是:
src/Wt/Dbo/CMakeLists.txt中的CMake错误:18(SET_TARGET_PROPERTIES):使用错误的参数数调用set_target_properties
如果我删除它,它配置就好了.
知道为什么吗?
谢谢,
奥梅尔
请记住,这是一个宏,因此在评估之前会替换符号.这意味着在评估之前,空字符串的符号将被替换为空.因此,如果WTDBO_SOVERSION是""那么
SET_TARGET_PROPERTIES(wtdbo PROPERTIES SOVERSION ${WTDBO_SOVERSION})
Run Code Online (Sandbox Code Playgroud)
会成为
SET_TARGET_PROPERTIES(wtdbo PROPERTIES SOVERSION)
Run Code Online (Sandbox Code Playgroud)
这会触发错误.如果空字符串对您的目的有效,则用引号括起符号.例如
SET_TARGET_PROPERTIES(wtdbo PROPERTIES SOVERSION "${WTDBO_SOVERSION}")
Run Code Online (Sandbox Code Playgroud)
您确定变量设置正确吗?我已经检查过这个 CMakeLists.txt 文件,它工作正常:
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
PROJECT(test CXX)
ADD_LIBRARY(wtdbo SHARED test.cc)
SET(WTDBO_SOVERSION 1)
SET(VERSION_SERIES 1)
SET(VERSION_MAJOR 0)
SET(VERSION_MINOR 0)
SET_TARGET_PROPERTIES(
wtdbo
PROPERTIES
VERSION ${VERSION_SERIES}.${VERSION_MAJOR}.${VERSION_MINOR}
SOVERSION ${WTDBO_SOVERSION}
DEBUG_POSTFIX "d"
)
Run Code Online (Sandbox Code Playgroud)
但是,如果我注释掉该SET(WTDBO_SOVERSION 1)行,我会收到与您相同的错误消息。帮助set_target_properties如下,所以你绝对做对了:
目标可以具有影响其构建方式的属性。
Run Code Online (Sandbox Code Playgroud)set_target_properties(target1 target2 ... PROPERTIES prop1 value1 prop2 value2 ...)设置目标的属性。该命令的语法是列出要更改的所有文件,然后提供接下来要设置的值。您可以使用任何所需的 prop 值对,并稍后使用该
GET_TARGET_PROPERTY命令将其提取。
| 归档时间: |
|
| 查看次数: |
10080 次 |
| 最近记录: |