加载静态库失败

yyang0514 2012-08-03 04:10:37
在当前文件夹下存在一个名为libmy.a的静态库,通过下面命令加载失败:
$(GPLUS) -o $(TARGET) $(OBJ) -L$(STATIC_LIB) -lmy.a
其中STATIC_LIB 为当前程序路径。
请问是哪里出错了。

错误提示:
g++ -c test.cpp
g++ -c -I/opt/install_cpp/include run.cpp
echo "shit"
shit
g++ -o cppunit_CROSS test.o run.o -L/mnt/hgfs/share/cppunittest -lmy.a
/usr/bin/ld: cannot find -lmy.a
collect2: ld returned 1 exit status
make: *** [all] Error 1
...全文
183 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyang0514 2012-08-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
引用 4 楼 的回复:

请帮忙分析一下。谢谢
用错了。libstuff.so,然后是指定-lstuff,而不是指定-lstuff.so

所以你的应该是-lmy而不是-lmy.a
[/Quote]
问题解决了。谢谢哈。
Linux-Torvalds 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

请帮忙分析一下。谢谢
[/Quote]用错了。libstuff.so,然后是指定-lstuff,而不是指定-lstuff.so

所以你的应该是-lmy而不是-lmy.a
yyang0514 2012-08-03
  • 打赏
  • 举报
回复
请帮忙分析一下。谢谢
yyang0514 2012-08-03
  • 打赏
  • 举报
回复
追问一下:
我将这个LIB文件放到/usr/local/lib ,并且将PATH环境变量包含这个路径,source它。
编译命令修改为
$(GPLUS) -o $(TARGET) $(OBJ) libcppunit.a
同样也不能成功。
yyang0514 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
链接时候找不到 -lmy.a 你可以指定一个绝对路径 例如/home/host/test/my.a
[/Quote]
用绝对路径是没有问题的,
但是为什么用-L 设定加载路径也找不到呢?
假设用-L 如何才能编译成功?
wshn13 2012-08-03
  • 打赏
  • 举报
回复
链接时候找不到 -lmy.a 你可以指定一个绝对路径 例如/home/host/test/my.a

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧