0

all:
我正在使用 Solaris 10,并遇到以下问题:

There is ODBC dynamic library in /usr/local/lib:

lrwxrwxrwx   1 root     root          16 Jun 26  2012 libodbc.so -> libodbc.so.2.0.0
lrwxrwxrwx   1 root     root          16 Jun 26  2012 libodbc.so.2 -> libodbc.so.2.0.0
-rwxr-xr-x   1 root     root     1874776 Jun 26  2012 libodbc.so.2.0.0  

生成文件喜欢这样:

gcc  -o a a.c -lodbc

当我使用 /usr/local/bin/gcc 编译程序时,编译正常。
但是当我使用 /usr/sfw/bin/gcc 编译程序时,得到以下错误:

ld:致命:库-lodbc:未找到

但是crle命令输出:

 Configuration file [version 4]: /var/ld/ld.config  
 Platform:     32-bit MSB SPARC
 Default Library Path (ELF):   /lib:/usr/lib:/usr/local/lib:/opt/DSI/32:/usr/local/asg_mysql/lib
 Trusted Directories (ELF):    /lib/secure:/usr/lib/secure  (system default)

 Command line:
 crle -c /var/ld/ld.config -l /lib:/usr/lib:/usr/local/lib:/opt/DSI/32:/usr/local/asg_mysql/lib

好像没问题。

那么使用 gcc 有什么不同吗?首先十分感谢!
最好的问候
南肖

4

1 回答 1

1

这似乎/usr/local/lib不在链接器的默认搜索路径中。使用-L选项添加它:

$ /usr/sfw/bin/gcc your_file.c -o your_program -L/usr/local/lib -lodbc
于 2013-02-27T09:03:50.337 回答