小编Igo*_*kov的帖子

Cmake和gcc结合在一起

我在源目录中有很多源文件.例如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.

谢谢.

gcc cmake

8
推荐指数
1
解决办法
2160
查看次数

标签 统计

cmake ×1

gcc ×1