我在LINUX下没安装数据库,但我安装了oracle-instantclient-basic-10.2.0.3-1.i386.rpm就是客户端,我配置了环境变量LD_LIBRARY_PATH=$/usr/instantclient_10_1/lib下,echo也是对的。然后我有下了oracle-instantclient-devel-10.2.0.4-1.i386.zip就是SDK,里面是include和demo。
我编译demo的时错误是:[root@localhost demo1]# g++ -I/root/oraclesdk/sdk/include -L/usr/instantclient_10_1/lib -L/usr/instantclient_10_1/lib/libocci.so.10.1  -o occidml  occidml.cpp
/tmp/cc0rzjIk.o:Infunction`occidml::occidml(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
occidml.cpp:(.text._ZN7occidmlC1ESsSsSs[occidml::occidml(std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x2e): undefined reference to `oracle::occi::Environment::createEnvironment(oracle::occi::Environment::Mode, void*, void* (*)(void*, unsigned int), void* (*)(void*, void*, unsigned int), void (*)(void*, void*))'
/tmp/cc0rzjIk.o: In function `occidml::insertRow()':
occidml.cpp:(.text._ZN7occidml9insertRowEv[occidml::insertRow()]+0x17a): undefined reference to `oracle::occi::SQLException::SQLException(oracle::occi::SQLException const&)'
occidml.cpp:(.text._ZN7occidml9insertRowEv[occidml::insertRow()]+0x1d2): undefined reference to `oracle::occi::SQLException::getErrorCode() const'
occidml.cpp:(.text._ZN7occidml9insertRowEv[occidml::insertRow()]+0x21a): undefined reference to `oracle::occi::SQLException::getMessage() const'
undefined reference to `oracle::occi::SQLException::~SQLException()'
/tmp/cc0rzjIk.o:(.gcc_except_table+0x194): undefined reference to `typeinfo for oracle::occi::SQLException'
/tmp/cc0rzjIk.o:(.gcc_except_table+0x208): undefined reference to `typeinfo for oracle::occi::SQLException'
/tmp/cc0rzjIk.o:(.gcc_except_table+0x274): more undefined references to `typeinfo for oracle::occi::SQLException' follow
/tmp/cc0rzjIk.o: In function `occidml::insertBind(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
occidml.cpp:(.text._ZN7occidml10insertBindEiSs[occidml::insertBind(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x1c8): undefined reference to `oracle::occi::SQLException::SQLException(oracle::occi::SQLException const&)'
occidml.cpp:(.text._ZN7occidml10insertBindEiSs[occidml::insertBind(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x220): undefined reference to `oracle::occi::SQLException::getErrorCode() const'
occidml.cpp:(.text._ZN7occidml10insertBindEiSs[occidml::insertBind(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x268): undefined reference to `oracle::occi::SQLException::getMessage() const'
undefined reference to `oracle::occi::SQLException::~SQLException()'
/tmp/cc0rzjIk.o: In function `occidml::deleteRow(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
occidml.cpp:(.text._ZN7occidml9deleteRowEiSs[occidml::deleteRow(int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x1c8): 
collect2: ld 返回 1我改成[root@localhost demo1]# g++ -I/root/oraclesdk/sdk/include -L/usr/instantclient_10_1/lib -l/usr/instantclient_10_1/lib/libocci.so.10.1 -l/usr/instantclient_10_1/lib/libclntsh.so.10.1  -o occidml  occidml.cpp
/usr/bin/ld: cannot find -l/usr/instantclient_10_1/lib/libocci.so.10.1
collect2: ld 返回 1
还是错。各位大哥大姐帮帮忙啊!小弟感激不尽啊!!!