我有一堆C ++源文件和静态库,形成框架F 。为了使用它,我创建了一个main_A.cpp和一些cMake文件,它们创建了一个可执行文件并成功运行(项目A )。
现在我为项目B使用不同的main_B.cpp 。为此,我创建了一个自己的cMakeLists.txt,例如一个不同的可执行文件名,它引用框架F
的config.cmake文件framework F (global config.cmake)
|
|___ project A
|
|___ project B (own cMakeLists.txt)
当我在项目A 之后编译项目B 时,框架F 中的所有文件都会被重新编译,这需要很长时间且不必要。
如何在使用不同的项目时让cMake检测到框架F已被编译?
方法:创建静态库,并将它们编译到公共文件夹(lib)中:
add_library( framework STATIC ${SRC_FILES} )
set_target_properties( framework PROPERTIES LIBRARY_OUTPUT_DIRECTORY /lib)
库被编译并放入/ lib但是当我编译项目B 时,所有内容都会被重新编译。