一旦定义,可以将其他源文件添加到可执行文件中吗?

Tor*_*örn 40 cmake

鉴于我已经在文件中定义了一个主要源文件的可执行CMakeList.txt文件:

ADD_EXECUTABLE(MyExampleApp main.cpp)
Run Code Online (Sandbox Code Playgroud)

我可以在此行之后将更多源文件添加到此可执行文件中但是在相同或包含的CMakeList.txt文件中吗?

ACy*_*lic 54

使用target_sources,自cmake 3.1起可用

例如. target_sources(MyExampleApp PRIVATE ${extra_file})

https://cmake.org/cmake/help/v3.1/command/target_sources.html

  • 如果目标是一个库(不是可执行文件),这个技巧也可以,但是您应该使用PRIVATE而不是PUBLIC,否则特定的源文件将被链接两次。 (3认同)

diz*_*l3d 9

我想你可能会用:

add_executable(MyExampleApp main.cpp)
add_library(library STATIC ${ADDITIONAL_SOURCES})
set_target_properties(library PROPERTIES
     LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(MyExampleApp library)
Run Code Online (Sandbox Code Playgroud)