当前位置: 技术问答>linux和unix
g++(GCC)3.2 (Red Hat Linux 8.0.3.2-7) 的编译问题
来源: 互联网 发布时间:2015-01-15
本文导语: 本人要做这个动态库是要把c++的代码通过jni转换成java能够调用的动态库rps.so 我用的是命令行 g++ -o rps.so -shared -Wl,-soname ,rps.so -I/.../.../include -I/.../.../include/linux a.cpp b.cpp c.cpp d.cpp e.cpp -static -lc 在编译动态库...
本人要做这个动态库是要把c++的代码通过jni转换成java能够调用的动态库rps.so
我用的是命令行
g++ -o rps.so -shared -Wl,-soname ,rps.so -I/.../.../include
-I/.../.../include/linux a.cpp b.cpp c.cpp d.cpp e.cpp -static -lc
在编译动态库的时候出现了一个这样的问题:
/usr/bin/ld:rps.so:undefined versioned symbol name _frame_state_for@@GLIBC_20
/usr/bin/ld:failed to set dynamic section sizees:Bad value
collect2:ld returned 1 exit status
我已经找到原因,不过觉得比较奇怪!
我在class a中声明了成员变量 class b *m_b,然后在class a 中得建构函数中 m_b = new b();如果我把这行去掉的话,就可以顺利创建库rps.so了
其实这些代码我都用工具kdevelopment调试通过了。
请问这是g++的问题吗?是不是我这个版本不支持new class(),需要更高的版本
或者是不是我应该在什么地方加上一个什么定义。
请指教!
我用的是命令行
g++ -o rps.so -shared -Wl,-soname ,rps.so -I/.../.../include
-I/.../.../include/linux a.cpp b.cpp c.cpp d.cpp e.cpp -static -lc
在编译动态库的时候出现了一个这样的问题:
/usr/bin/ld:rps.so:undefined versioned symbol name _frame_state_for@@GLIBC_20
/usr/bin/ld:failed to set dynamic section sizees:Bad value
collect2:ld returned 1 exit status
我已经找到原因,不过觉得比较奇怪!
我在class a中声明了成员变量 class b *m_b,然后在class a 中得建构函数中 m_b = new b();如果我把这行去掉的话,就可以顺利创建库rps.so了
其实这些代码我都用工具kdevelopment调试通过了。
请问这是g++的问题吗?是不是我这个版本不支持new class(),需要更高的版本
或者是不是我应该在什么地方加上一个什么定义。
请指教!
|
?
|
xx