如何在Windows下使用Cygwin GCC编译含未定义符号的C程序?
用Cygwin GCC编译含未定义但未调用符号的C程序
我来帮你搞定这个编译问题!首先先确认你的测试用例main.c代码:
void bar(void); void foo(void) { bar(); } int main(void) { return 0; }
正如你所说,bar()是未定义的,但好在foo()从来没被main()调用过,所以这个未定义符号其实不会影响程序运行。在Windows的Cygwin环境下,你可以通过给GCC传递链接选项来让链接器忽略所有未定义符号。
具体的编译命令是这样的:
gcc main.c -o main --unresolved-symbols=ignore-all
这个--unresolved-symbols=ignore-all选项会告诉GCC的链接器跳过所有未定义符号的检查,刚好适配你这种“未定义符号所在的函数完全没被用到”的场景,编译出来的程序可以正常运行。
内容的提问来源于stack exchange,提问作者Mate Rigo
相关产品推荐
相关产品推荐

