我正在用 clang 编译 ac 库(供 c++ 项目使用)。尝试链接此库时出现链接器错误(特别是关于 hqxInit 函数的未定义符号)。当我切换到 clang++ 时,它可以工作。用 nm 检查,clang++ 进一步修改了名称。发生了什么——有没有更好的方法告诉链接器库是 munged-for-c 还是 munged-for-c++?必须用 c++ 构建 ac 库似乎很愚蠢....
// 用 clang 构建
$ nm libhqx.a
libhqx.bak(init.c.o)
04000000 C _RGBtoYUV
00000004 C _YUV1
00000004 C _YUV2
00000000 T _hqxInit
// 用 clang++ 构建
$ nm libhqx.a
libhqx.a(init.o):
00000100 S _RGBtoYUV
04000100 S _YUV1
04000104 S _YUV2
00000000 T __Z7hqxInitv