自己的系统是Windows7,1、在本机上用D:\oracle\product\10.2.0\db_1\BIN\Proc 预编译 一个编辑好的 stu.pc 文件(Pro*C源程序),生成stu.c
*******************   stu.pc是为了查询远程数据库服务器(与本机一样,为Oracle10G)表内容2、在本机上用JFE and GCC 软件编译stu.c通过3、在本机上用JFE and GCC RUN stu.c,报错:
*******************  328: undefined reference to `sqlcxt(void**, unsigned*, sqlexd*, sqlcxp const*)'4、参考网上示例命令,在cmd下进到GCC.exe目录,用GCC命令这样编译:
C:\gcc\bin>gcc -o c:\tempextproc\stu.o D:\oracle\product\10.2.0\db_1\lib\libclnt
sh.so
提示:
g++.exe: D:\oracle\product\10.2.0\db_1\lib\libclntsh.so: No such file or directo
ry
g++.exe: no input files
——————————————————————————————请问这个问题应该如何解决?我看到网上有很多人遇到类似问题,但我没有找到一个可行的办法。GCCPro*C

解决方案 »

  1.   

    这不提示没有这个文件了,你确认下是不是真啊?
    可能原因:
    (1)没有安装Oracle客户端组件
    (2)链接的库文件名称或者路径是错误的。比如我的V9链接库名称为:C:\oracle\ora92\precomp\lib\msvc\orasql9.lib。
    比较稳妥的办法是编译下Oracle自带的*.pc例子,看看它链接的是什么库。BTW,windows下貌似没有*.so的动态库说法,它的动态库是*.dll。链接文件是*.lib的。
      

  2.   

    哦,看错了,编译通过了,只是运行时没有找到而已。
    (1)在CMD下执行一下文件看是不是报错
    (2)增加环境变量:LD_LIBRARY_PATH,指向库文件所在的路径。注意增加系统环境变量,可能需要重新启动后才能生效。因此,设置后应该检查下是否已经生效。
    (3)JFE?要看看你运行环境软件对动态库文件路径是如何规定的。
    (4)试试静态链接编译,静态链接就不会有找不到库文件的问题。
      

  3.   

    问题已解决,总结在:
    http://blog.csdn.net/luxer_1985/article/details/8974707谢谢楼上的朋友提醒!