主题 : 交叉编译时一定要静态链接吗? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 61202
精华: 0
发帖: 8
金钱: 45 两
威望: 9 点
综合积分: 16 分
注册时间: 2011-12-24
最后登录: 2017-09-13
楼主  发表于: 2012-02-01 12:15

 交叉编译时一定要静态链接吗?

Tiny6410开发板跑Android 2.3
在ubuntu上写一个简单的打开设备文件并调用ioctl进行操作的C程序,arm-linux-gcc编译的时候除了要用-I指定include路径外,还必须要静态链接才能在开发板上正确运行。请问一定要这样做吗?有没有什么办法不静态链接也能正确运行呢?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2012-02-01 13:33
不是。动态链接的交叉编译需要
1) 编译时指定共享库文件及其所在的路径(可以用arm-linux-gcc的-L和-l参数指定)
2) 运行时确保能加载共享库文件(可以用LD_LIBRARY_PATH指定共享库文件的搜索路径)
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 圣骑士
UID: 44407
精华: 0
发帖: 386
金钱: 1945 两
威望: 389 点
综合积分: 772 分
注册时间: 2011-04-25
最后登录: 2014-08-25
2楼  发表于: 2012-02-01 17:00
引用第1楼kasim于2012-02-01 13:33发表的  :
不是。动态链接的交叉编译需要
1) 编译时指定共享库文件及其所在的路径(可以用arm-linux-gcc的-L和-l参数指定)
2) 运行时确保能加载共享库文件(可以用LD_LIBRARY_PATH指定共享库文件的搜索路径)


曾碰到相似問題(iperf),最後也用靜態編譯