我正在尝试为我尝试在CMake中编译的可执行文件之一设置多个编译定义(以激活用于调试的宏).这是我试过的:
add_executable (trie_io_test trie_io_test.c trie.c word_list.c)
set_target_properties(
trie_io_test
PROPERTIES
COMPILE_DEFINITIONS UNIT_TESTING=1)
set_target_properties(
trie_io_test
PROPERTIES
COMPILE_DEFINITIONS IO_TEST=1)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这只会导致定义IO_TEST.
我也尝试过以下方法:
add_executable (trie_io_test trie_io_test.c trie.c word_list.c)
set_target_properties(
trie_io_test
PROPERTIES
COMPILE_DEFINITIONS UNIT_TESTING=1 IO_TEST=1)
Run Code Online (Sandbox Code Playgroud)
但另一方面,这会导致CMake错误.
如何为我正在尝试构建的可执行文件设置这两个定义?
Fra*_*ser 34
你想要target_compile_definitions而不是set_target_properties:
target_compile_definitions(trie_io_test PRIVATE UNIT_TESTING=1 IO_TEST=1)
Run Code Online (Sandbox Code Playgroud)
我发现这对你有用:
add_executable (trie_io_test trie_io_test.c trie.c word_list.c)
set_target_properties(
trie_io_test
PROPERTIES
COMPILE_DEFINITIONS UNIT_TESTING=1
COMPILE_DEFINITIONS IO_TEST=1
)
Run Code Online (Sandbox Code Playgroud)
只需添加另一个COMPILE_DEFINITIONS:P
| 归档时间: |
|
| 查看次数: |
30246 次 |
| 最近记录: |