LLINUX GCC 编译C使用自定义动态链接库.so的问题
我有以下两种不同的编译方式,假设我的test文件需要用到test.so的链接库文件(在同一个文件夹):gcctest.c-otest1verify.sogcctest.c...
我有以下两种不同的编译方式,假设我的test文件需要用到test.so的链接库文件(在同一个文件夹):
gcc test.c -o test1 verify.so
gcc test.c -o test2 ./verify.so
得到的test1在同一文件夹下无法运行,提示找不到test.so文件,网上查是要把相应的路径添加的系统中
得到的test2文件只要在同一文件夹下即可运行!!!
我想知道这是为什么,编译时只有最后一个参数的写法不一样 展开
gcc test.c -o test1 verify.so
gcc test.c -o test2 ./verify.so
得到的test1在同一文件夹下无法运行,提示找不到test.so文件,网上查是要把相应的路径添加的系统中
得到的test2文件只要在同一文件夹下即可运行!!!
我想知道这是为什么,编译时只有最后一个参数的写法不一样 展开
1个回答
展开全部
1. 可以参考如下关于库文件的文章:http://numanal.com/?p=129
2. 在编译文件时最好用-L指明自定义库的存在目录, 利用如下任一语句(.so文件与.c文件在同一目录):
gcc test.c -o test2 -L./verify.so
gcc test.c -o test2 -L.
3. 你这里在的问题应该与编译器的某些兼容性有关, 在实际编写程序的时候最好按gcc的语法规范走, 避免不必要的错误.
2. 在编译文件时最好用-L指明自定义库的存在目录, 利用如下任一语句(.so文件与.c文件在同一目录):
gcc test.c -o test2 -L./verify.so
gcc test.c -o test2 -L.
3. 你这里在的问题应该与编译器的某些兼容性有关, 在实际编写程序的时候最好按gcc的语法规范走, 避免不必要的错误.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询