static void func() { static int i; i++; } } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 参考: undefined reference to static private me - C++ Forum
由于引用了file1.h中的static函数,所以file2.c中提示找不到这个函数:undefined reference to 'called' 以下改动file2.c: #include "file1.h" int main() { printStr(); return 0; } 编译执行: [liujx@server235 static]$ gcc -Wall file2.c file1.c -o file2 [liujx@server235 static]$ ./file...
由于引用了file1.h中的static函数,所以file2.c中提示找不到这个函数:undefined reference to 'called' 以下改动file2.c: #include "file1.h" int main() { printStr(); return 0; } 编译执行: [liujx@server235 static]$ gcc -Wall file2.c file1.c -o file2 [liujx@server235 static]$ ./file...
1test_static$gcc-otest*.c2/usr/bin/ld:/tmp/ccawkyDR.o:infunction`test_func':3test.c:(.text+0xa):undefinedreferenceto`l_count'4/usr/bin/ld:test.c:(.text+0x13):undefinedreferenceto`l_count'5/usr/bin/ld:test.c:(.text+0x19):undefinedreferenceto`g_count'6/usr/bin/ld:test.c:...
("main, %d\n",a);func3();return0;}/* 编译失败 */Infileincludedfrommain.c:2:val.h:8:13:warning:‘func3’usedbutneverdefined8|staticvoidfunc3();|^~~~/usr/bin/ld:/tmp/ccCoTxSb.o:infunction`main':main.c:(.text+0x50):undefinedreferenceto`func3'collect2:error:ldreturned1exitstatu...
demo2.c:(.text+0xa): undefined reference to `sum' collect2: ld returned 1 exit status 提示是main方法中要调用的sum方法找不到。 5、sum.c中sum方法不加static和加static修饰符的对比 我们对比了下sum.c不加static和加static修饰符的代码,发现不加static生成的汇编代码会默认加上.global。
gcc -static${FILE} -O3 -o bitcnts But I'm getting an error saying thatundefined reference to main': /opt/riscv/bin/../lib/gcc/riscv64-unknown elf/4.9.2/../../../../riscv64-unknown- elf/lib/soft-float/32/crt0.o:
将foo.h 种的改为static void foo() # gcc foo.o test2.o test2.o: In function `main': test2.c:(.text+0xa): undefined reference to `foo' collect2: error: ld returned 1 exit status 使用nm 查看foo.o符号表 # nm -C foo.o 0000000000000000 t foo U _GLOBAL_OFFSET_TABLE_ U puts ...
如果将函数的实现放在cpp文件中,并且标记为inline, 那么该函数对其他编译单元不可见(类似static的效果),也就是其他cpp文件不能链接该函数库,这就是标题中出现的 … undefined reference to … 问题原因就是,编译器在编译一个inline函数时,需要知道其完整定义,如果编译器在本编译单元找不到inline函数定义就会报错(inli...
printf("this is non-static func in a"); }//file b.c#include <stdio.h>externvoidfn();//我们用extern声明其他文件的fn(),供本文件使用。voidmain() { fn(); } 可以正常输出:this is non-static func in a。 当给void fn()加上static的关键字之后呢? undefined reference to "fn". ...