打印
[嵌入式linux]

linux静态库的调用疑问,J急!急!急!

[复制链接]
1018|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vkic007|  楼主 | 2015-4-18 22:19 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
今天编译了一个静态库,但是调用的时出现了一下问题。在同一个文件目录下如图的几个文件,输入如图的命令,发现找不到我的库文件。我输入的命令如下:$gcc DX8_A8.c -static -L. -lcdx8api_a8_i2c -o dx8_test    ,在-L.和-lcdx8api_a8_i2c之间有空格没有,在有空格的情况下,出现找不到库的错误(图1)。在没有空格的情况下,又找不到被调用的函数(图二)。可以确定的是库相关的头文件是包含了的,库里面也有该函数。



1.jpg (38.47 KB )

图1

图1

2.jpg (18.38 KB )

图2

图2

1.jpg (38.47 KB )

图1

图1

2.jpg (18.38 KB )

图2

图2

相关帖子

沙发
vkic007|  楼主 | 2015-4-18 22:20 | 只看该作者
自己先定一下。

使用特权

评论回复
板凳
vkic007|  楼主 | 2015-4-18 22:22 | 只看该作者
其实我自己也做过实验。我觉得应该加-L.和-l应该有空格。但是我现在又不知道我上面到底是什么地方除了问题。我的库文件名应该没有写错吧。麻烦给位大侠帮忙看看。感激

使用特权

评论回复
地板
vkic007|  楼主 | 2015-4-19 21:23 | 只看该作者
看来大神些周末都出去耍了,没时间回答我的问题哟。

使用特权

评论回复
5
john_lee| | 2015-4-20 09:51 | 只看该作者
检查一下库的elf格式与当前编译环境是否一致,比如elf32和elf64。

使用特权

评论回复
6
vkic007|  楼主 | 2015-4-25 21:35 | 只看该作者
john_lee 发表于 2015-4-20 09:51
检查一下库的elf格式与当前编译环境是否一致,比如elf32和elf64。

谢谢你的回答,我最后找到问题了,差不多就是你说的原因。

使用特权

评论回复
7
paier_tt| | 2015-5-20 11:45 | 只看该作者
原理如痴,难怪难怪

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:志不强者智不达

18

主题

365

帖子

1

粉丝