免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6608 | 回复: 6
打印 上一主题 下一主题

[C] 关于添加gcc库路径的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-03 00:18 |只看该作者 |倒序浏览
我是个linux编程新手,使用的系统是fedora9,编程语言为C。我用的编译系统是gcc(系统自带),gcc有默认的头文件和库文件所搜路径(/usr /include和/usr/lib,这个应该没错吧?)。现在我想让gcc能够搜索我自己编写的一些头文件和库文件,我的做法如下,请帮忙分析下:
    (1)新建自己的头文件路径/home/user/workspace/include和库文件路径/home/user/workspace/lib,这两个目录用来存放我自己编写的头文件和库文件;
    (2)接下来写个头文件和库文件作测试,在/home/user/workspace/include下新建文件test.h,在/home/user/workspace/lib下新建test.c,test.h中是一些函数原型,test.c是函数的实现;
    (3)通过命令gcc -fPIC -shared -o libtest.so test.c在/home/user/workspace/lib生成了一个动态链接库文件libtest.so;
    (4)现在把库文件路径添加进.bash_profile文件,添加内容如下:
# my code
C_INCLUDE_PATH=/home/cheney/workspace/include
export C_INCLUDE_PATH
LD_LIBRARY_PATH=/home/cheney/workspace/lib
export LD_LIBRARY_PATH
然后通过source .bash_profile把.bash_profile文件即时更新了;
    (5)编一个程序进行测试,代码如下:
//main.c
#include<test.c>
int main()
{
    test();//test函数的原型在test.h中,具体实现在test.c中
    return 0;
}
    (6)然后通过gcc main.c -ltest -o main编译,但是总提示“cannot find -ltest ".

    请问这是什么原因?是库文件路径添加方法错误吗?值得注意的是:我通过gcc main.c /home/user/workspace/lib/libtest.so -o main可以通过编译,运行结果也是正确的。但是每次编译都输入完整路径就很麻烦了。我希望每次只要给出库文件的名称(如-ltest)就能够自动搜索该库文件,请问应该怎么解决?希望有人能抽出点宝贵的时间帮我解答,谢谢!

论坛徽章:
0
2 [报告]
发表于 2009-03-03 00:49 |只看该作者
我用cc的时候会在makefile里面用-L指定lib目录,不知道gcc行不行,我也刚学,没用过。

论坛徽章:
0
3 [报告]
发表于 2009-03-03 09:11 |只看该作者
ldconfig.conf
ldconfig

论坛徽章:
0
4 [报告]
发表于 2009-03-03 09:31 |只看该作者

回复 #2 sunnyqboy 的帖子

你说的用-L指定lib路径是可以的,但是有没有方法使程序能够只通过库文件的名称(如libtest.so)就能够自动搜索到我自己编写的库文件呢?因为每次都要输入lib的路径是件很麻烦的事情。。。

论坛徽章:
0
5 [报告]
发表于 2009-03-03 09:39 |只看该作者
没做过,学习!!

论坛徽章:
0
6 [报告]
发表于 2009-03-03 09:56 |只看该作者

回复 #3 zliming 的帖子

你的意思是编辑/etc/ld/so/conf文件,在其中加入我自己的库文件路径是吗?然后/sbin/ldconfig /etc/ld.so.conf


   我这样做了,但是在只指定库文件名称的情况下,编译还是出现“cannot find -ltest”,请指教。

论坛徽章:
0
7 [报告]
发表于 2009-03-08 23:17 |只看该作者
这个问题已经得到解决了,方法:重启!

汗~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP