C 当符号出现时,为什么叮当声会产生链接问题?
我有一个奇怪的链接问题。我有一堆文件要编译,但我遇到了一个未定义的符号错误。以下是错误:C 当符号出现时,为什么叮当声会产生链接问题?,c,gcc,compilation,clang,ld,C,Gcc,Compilation,Clang,Ld,我有一个奇怪的链接问题。我有一堆文件要编译,但我遇到了一个未定义的符号错误。以下是错误: clang U_outsup.o U_OUTSUR.o Undefined symbols for architecture x86_64: "U_outsup(surface*, __sFILE*)", referenced from: U_outsur(surface*, char*) in U_OUTSUR.o ld: symbol(s) not found for architect
clang U_outsup.o U_OUTSUR.o
Undefined symbols for architecture x86_64:
"U_outsup(surface*, __sFILE*)", referenced from:
U_outsur(surface*, char*) in U_OUTSUR.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
当我试图将源文件编译为out可执行文件时,也会发生同样的情况。如果我查看这些对象文件(clang-cuu_outsup.cuu_OUTSUR.c),我会看到以下内容:
U_outsup.o: file format Mach-O 64-bit x86-64
SYMBOL TABLE:
0000000000000420 l __DATA,__data _rname
0000000000000000 g F __TEXT,__text _U_outsup
0000000000000000 *UND* _A_extcpc
0000000000000000 *UND* _E_seterr
0000000000000000 *UND* _U_issurr
0000000000000000 *UND* _U_surbre
0000000000000000 *UND* _fprintf
U_OUTSUR.o: file format Mach-O 64-bit x86-64
SYMBOL TABLE:
0000000000000090 l __DATA,__data __ZL5rname
0000000000000000 g F __TEXT,__text __Z8U_outsurP7surfacePc
0000000000000000 *UND* __Z8E_seterrlPc
0000000000000000 *UND* __Z8U_outsupP7surfaceP7__sFILE
0000000000000000 *UND* _fclose
0000000000000000 *UND* _fopen
因此,我假设找不到符号“U_outup(surface*,U sFILE*)”,因为它在符号表中有一个可笑的名称。有人能帮我弄清楚这是怎么回事吗?再次感谢 它没有一个可笑的名字。它有一个C++的名字。
这意味着它是用C++编译器构建的,而不是C编译器。使用gcc或clang,而不是g++或clang++重新编译库
它没有一个可笑的名字。它有一个C++的名字。这意味着它是用C++编译器构建的,而不是C编译器。使用gcc或clang,而不是g++或clang++重新编译库