所以这里是故事。我有这个设备使用Linux和更多的开源工具(顺便说一句,它是一个ARM)。我被赋予了创建一些魔术出纳应用程序的任务。Oracle C++ linux和更奇怪的东西
我已经做到了,现在我的老板已经提出了新的要求。他希望我让这些东西(设备)连接到远程数据库(最好是Oracle)。这就是我开始使用轻量级版本的Oracle即时客户端所做的事情。一切都很好,并冷却,直至我跑我的第一个Hello World:
#include <occi.h>
using namespace oracle::occi;
int main(){
Environment *env = Environment::createEnvironment();
Connection *conn = env->createConnection("HR", "password");
env->terminateConnection(conn);
Environment::terminateEnvironment(env);
return 0;
}
链接对OCCI,clntsh,螺纹; 并设置库搜索路径,以及其他东西:“$ {workspace_loc:/ OracleTest/instantclient_10_2}”这是保存我的.so文件的目录;
以下是编译命令:
ucfront-g++ -Wl,-elf2flt="r" -static -o OracleTest ./main.o -locci -lclntsh -lthread -L/usr/local/arm-elf/lib -L"C:\workspace\OracleTest\instantclient_10_2" -L/usr/local/fit-libs/lib
这里是错误:
/usr/local/arm-elf/bin/ld.real: cannot find -locci collect2: ld returned 1 exit status
而且还有一些我想提几件事情:
1 - 我运行windows并编译为linux,即时客户端版本,我已经下载的是针对Linux x86的(如果这可行,或者它可能成为问题的根源,那么就不要这么做)。
2-我使用修改后的版本eclipse来开发,特定于该设备。
3-我不知道如果我应该在编译之后将这些库文件移动到设备上,所以如果有人能够给我这方面的指导,我会非常感激。
TLDR:我不想编译上面的代码,但它无法链接,请帮助!
编辑:
于两个第一答案,不,我还没有发现任何具体的ARM库,我不认为有任何。
这里是链接,如果任何人都可以找到任何类似于ARM分布的东西,我会感激的。 有两个RISC分布,但我不知道他们是否与ARM兼容:
Instant Client for HP-UX PA-RISC (64-bit)
Instant Client for HP-UX PA-RISC (32-bit)
我将如何让它在我部署的linux中运行?库和编译软件之间是否存在任何硬性依赖关系? – 2009-11-27 14:30:56