当前位置: 技术问答>linux和unix
关于gcc和g++ 的超级蔡鸟送分
来源: 互联网 发布时间:2015-03-17
本文导语: 请问用c++写的动态连接库和用c写的动态连接库在编译连接的时候有什么区别。 我写的一个动态库当用c写的时候 采用如下方式编译连接结果经过测试,库正确,可用: gcc -g -fPIC -o libtest.o libtest.c gcc -g -shared -...
请问用c++写的动态连接库和用c写的动态连接库在编译连接的时候有什么区别。
我写的一个动态库当用c写的时候
采用如下方式编译连接结果经过测试,库正确,可用:
gcc -g -fPIC -o libtest.o libtest.c
gcc -g -shared -Wl,-soname,libtest.so -o libtest.so.1.0.0 libtest.o -lc
可是如果我换成c++实现(代码肯定正确),编译连接方式采用如如下
g++ -g -fPIC -o libtest.o libtest.cpp
g++ -g -shared -Wl,-soname,libtest.so -o libtest.so.1.0.0 libtest.o -lc方式进行编译连接的时候得到的库在用同样的方法测试的时候不可用,在dlopen的时候 没有错得到了句柄,可是在dlsym的时候就出错了。
我得出结论,以为是g++ 和 gcc在编译连接动态库的时候是不是应该有不同的参数选项。
请高手指点,非常感谢
我写的一个动态库当用c写的时候
采用如下方式编译连接结果经过测试,库正确,可用:
gcc -g -fPIC -o libtest.o libtest.c
gcc -g -shared -Wl,-soname,libtest.so -o libtest.so.1.0.0 libtest.o -lc
可是如果我换成c++实现(代码肯定正确),编译连接方式采用如如下
g++ -g -fPIC -o libtest.o libtest.cpp
g++ -g -shared -Wl,-soname,libtest.so -o libtest.so.1.0.0 libtest.o -lc方式进行编译连接的时候得到的库在用同样的方法测试的时候不可用,在dlopen的时候 没有错得到了句柄,可是在dlsym的时候就出错了。
我得出结论,以为是g++ 和 gcc在编译连接动态库的时候是不是应该有不同的参数选项。
请高手指点,非常感谢
|
用
extern "C" {
#include "you head file"
}
将C库的头文件括起来.
extern "C" {
#include "you head file"
}
将C库的头文件括起来.
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。