【发布时间】:2012-12-01 23:59:00
【问题描述】:
我正在用 clang 编译一个 c 库(供 c++ 项目使用)。尝试链接此库时出现链接器错误(特别是有关 hqxInit 函数的未定义符号)。当我切换到 clang++ 时,它可以工作。用 nm 检查,clang++ 进一步修改了名称。发生了什么——有没有更好的方法来告诉链接器库是 munged-for-c 还是 munged-for-c++?必须用c++构建一个c库似乎很愚蠢....
//用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
【问题讨论】: