我有一个程序,它调用某些库函数。我可以成功编译GCC。然而,当我切换到G ++ 4.7(因为我需要添加在它的C++代码),我得到G ++抱怨“未定义的引用”,而GCC成功
undefined reference to <a function name here>
编译命令是这样的:
<gcc or g++> foo.c -o foo <path-to-a-static-library>.a -l<the library>
含有的库函数我打电话是由C写的。
我该如何解决?用G ++重新编译库?这很糟糕,因为我们有其他C程序使用该库。
名称mangling !!!查找'extern“C”'... – 2014-10-26 22:47:07
@πάνταῥεῖThx。我搜索了一个结果,如“如果需要在C++中使用,C代码头应该包含在extern中”。那么,如果图书馆没有那个外部C,我什么都不能做? – 2014-10-26 23:01:53
@PengZhang do'extern“C”{“{”} #include“library.h” }'您的C++代码 – 2014-10-26 23:04:43