我有三个程序,例如:program_1.cpp
,program_2.cpp
和program_3.cpp
。
到目前为止,我有单独的makefile来构建这些程序。
我想通过以下方式实现。
cmake "program_1" # program_1.cpp has to compile
cmake "program_2" # program_2.cpp has to compile
cmake "program_3" # program_3.cpp has to compile
您能建议我实现这一目标的方法吗?
[更新]:
我正在使用Shell脚本来编译程序。 例如
bash build_script.sh build
这将编译文件program_1.cpp
并生成可执行文件。
我将以相同的方式实施以下方法。
bash build_script.sh build program_1 -- build program_1.cpp
bash build_script.sh build program_2 -- build program_2.cpp
bash build_script.sh build program_3 -- build program_3.cpp
答案 0 :(得分:3)
在生成makefile时,cmake会为每个add_executable()
调用创建一个make目标,因此仅需在由cmake生成的makefile上使用make target
:
CMakeLists.txt:
...
add_executable(program_1 prog1.cpp)
add_executable(program_2 prog2.cpp)
add_executable(program_3 prog3.cpp)
然后是时候构建:
cmake path/to/source/dir
make program_1
答案 1 :(得分:2)
假设您要编译三个不同的目标,则可以有一个简单的makefile:
.PHONY program_1:
program_1:
gcc -o program_1 program_1.cpp
.PHONY program_2:
program_2:
gcc -o program_2 program_2.cpp
.PHONY program_3:
program_3:
gcc -o program_3 program_3.cpp
然后您可以简单地做到:
make program_2
仅编译program_2。但是,这与cmake无关。