我在源目录中有很多源文件.例如ac,bc,cc,并希望通过带有-combine选项的gcc编译它.
set(CMAKE_C_FLAGS "-combine")
set(SRC a.c b.c c.c)
add_executable(a.out ${SRC})
Run Code Online (Sandbox Code Playgroud)
Cmake编译目标文件中的每个*.c文件,但我想将所有源代码编译为一个对象.我怎么能得到这个.
就gcc而言:
gcc -combine a.c b.c c.c -o module.o
ar rcs library.a module.o
Run Code Online (Sandbox Code Playgroud)
但是cmake使用每个模块的源代码翻译.
gcc a.c -o a.o
gcc b.c -o b.o
gcc c.c -o c.o
ar rcs library.a a.o b.o c.o
Run Code Online (Sandbox Code Playgroud)
使用combine进行翻译可以加快程序的性能.由于旧版本的gcc,我无法使用可以解决cmake中同样问题的LTO.
谢谢.