我写了一个CMakeLists.txt包含2个可执行文件(target1和target2)的文件:
ADD_EXECUTABLE(target1 ${CXX_FILES})
TARGET_LINK_LIBRARIES(target1 ${requiredlibs})
ADD_EXECUTABLE(target2 ${CXX_FILES} ${OTHER_CXX_FILES})
TARGET_LINK_LIBRARIES(target2 ${requiredlibs})
Run Code Online (Sandbox Code Playgroud)
现在,每当我在没有任何参数的情况下运行make时,都会重建两个目标.但我想定义target1为默认可执行文件,以便只运行make而不使用任何参数target1.对于建筑target2我会跑make target2.
这可能吗?
在CMake创建的Makefile中,有以下定义:default_target:all
我想我需要一种方法来此设置default_target来target1.
我遇到的另一个问题是make总是重建目标,即使没有更改源文件.
vla*_*ima 11
执行您请求的示例CMakeLists.txt:
ADD_EXECUTABLE(target1 a.c)
ADD_EXECUTABLE(target2 EXCLUDE_FROM_ALL b.c)
Run Code Online (Sandbox Code Playgroud)
对我来说,如果源文件没有改变(或修改时间没有改变),它不会重建目标.输出我得到:
$ make -f Makefile
Scanning dependencies of target target1
[100%] Building C object CMakeFiles/target1.dir/a.c.o
Linking C executable target1
[100%] Built target target1
[$ make -f Makefile
[100%] Built target target1
Run Code Online (Sandbox Code Playgroud)
请注意,第二个make不会重建任何内容.
(您可以阅读有关此类信息的CMake手册)
| 归档时间: |
|
| 查看次数: |
11742 次 |
| 最近记录: |