- 论坛徽章:
- 0
|
使用g++在linux下编译连接我的程序.
这个程序在AIX和HP-UX上都可以成功编译.
在使用g++进行连接时报错.
连接使用的命令行如下
- g++ -I. -I/develop/public/include -Iinclude
- -I/oracle/ora9/product/9.2/precomp/public
- -I/oracle/ora9/product/9.2/rdbms/demo
- -I/oracle/ora9/product/9.2/rdbms/public -DLINUX -DNAMESPACE
- -g -I. -I./include -o pass src/main.o -L/public/lib
- -L/oracle/ora9/product/9.2/lib
- -lpthread -lm -lc -lnsl -lrt -ldl -locci9 -lclntsh -lpublic
复制代码
其中-lpublic是ar出来的自己的静态库libpublic.a,在libpublic.a中使用了occi中的函数.错误报告如下:
- /public/lib/libpublic.a(common.o)(.gcc_except_table+0x124): undefined reference to `typeinfo for oracle::occi::SQLException'
- /public/lib/libpublic.a(common.o)(.gcc_except_table+0x1a8): undefined reference to `typeinfo for oracle::occi::SQLException'
- ......
复制代码
从错误报告中应该是连接器ld找不到occi的异常类的信息.
但我使用
nm libocci9.a | grep SQLException
发现libocci9.a里是有SQLException的
哪位比较熟悉g++编译器,是否我进行连接的时候少了什么选项
还是对编译器的版本有要求 |
|