GCC:如何将库编译成一个C文件?

时间:2011-06-11 18:46:18

标签: gcc ffmpeg

所以我们有例如可以编译成>的ffmpeg。比4个图书馆。是否可以使用GCC编译\ collect而不是.a或.so库,而是进入一些谨慎的大型C文件?

2 个答案:

答案 0 :(得分:1)

有趣的问题,你为什么要这样做?无论如何,您可以尝试查看gcc -E是否符合您的要求 - 它只调用预处理器。因此,您可能必须调整源代码以包含其他源代码文件。

MiLu@Dago: ~ > cat x.c
int x_num() {
        return 7;
}
MiLu@Dago: ~ > cat moin.c
#include <stdio.h>
#include "x.c"
int main() {
        printf("moin: %d\n", x_num());
        return 0;
}
MiLu@Dago: ~ > gcc -E moin.c | wc -l
1150

我想我宁愿尝试cat实用程序:

find -type f -name \*.c | xargs cat > all_my.c

但是,你想要实现什么目标?

答案 1 :(得分:1)

您可以将cpp与-M系列参数一起使用来生成描述代码依赖关系的make文件,然后为.c和.h文件添加规则以将内容追加到同一文件中。

如果应用程序未在.h文件中使用#ifdef防护,则可能会导致有关宏定义两次的警告。