gcc链接的时候找不到库,可是我的库文件在我指定的文件夹下明明是有的啊

twiker 2012-09-28 10:45:27
如题所示,这是最后一部的链接命令:
`wx-config --cxx` -o iMusic iMusic_BottomLeftBtnContainer.o iMusic_BottomRightBtnContainer.o iMusic_ButtonContainer.o iMusic_CCodecApe.o iMusic_customlistctrl.o iMusic_CustomSlider.o iMusic_CustomTreeCtrl.o iMusic_global_funs.o iMusic_ImageLoader.o iMusic_iMusicApp.o iMusic_iMusicFrame.o iMusic_LcdScreen.o iMusic_media.o iMusic_output.o iMusic_ProgressBar.o iMusic_SettingDialog.o iMusic_TransparentButton.o iMusic_cd.o iMusic_cdtext.o iMusic_cue_parser.o iMusic_cue_scanner.o iMusic_rem.o iMusic_time.o iMusic_APECompressCore.o iMusic_APECompress.o iMusic_APECompressCreate.o iMusic_APEDecompress.o iMusic_APEHeader.o iMusic_APEInfo.o iMusic_APELink.o iMusic_APESimple.o iMusic_APETag.o iMusic_BitArray.o iMusic_CharacterHelper.o iMusic_CircleBuffer.o iMusic_GlobalFunctions.o iMusic_MACLib.o iMusic_MACProgressHelper.o iMusic_md5.o iMusic_NewPredictor.o iMusic_NNFilter.o iMusic_Prepare.o iMusic_StdLibFileIO.o iMusic_UnBitArrayBase.o iMusic_UnBitArray.o iMusic_WAVInputSource.o iMusic_WinFileIO.o iMusic_Anti_Predictor.o iMusic_AntiPredictorExtraHigh.o iMusic_AntiPredictorFast.o iMusic_AntiPredictorHigh.o iMusic_AntiPredictorNormal.o iMusic_APEDecompressCore.o iMusic_APEDecompressOld.o iMusic_UnBitArrayOld.o iMusic_UnMAC.o -o MAC/Assembly/Assembly.o -L/home/cyy/lib `wx-config --unicode=yes --static=no --toolkit=gtk2 --version=2.9 --libs core,base` -llibwxcode_gtk2u_wxsqlite3-2.9.so -lMACLib.lib -lsqlite3.lib
/usr/bin/ld: cannot find -llibwxcode_gtk2u_wxsqlite3-2.9.so
/usr/bin/ld: cannot find -lMACLib.lib
/usr/bin/ld: cannot find -lsqlite3.lib


前面我已经在GNUMakefile里面添加了 -L/home/cyy/lib,在这个目录下面是有这三个库文件的啊:
libwxcode_gtk2u_wxsqlite3-2.9.so MACLib.lib sqlite3.lib
为什么链接的时候还是找不到呢?
...全文
431 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
twiker 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

-lMACLib.lib -lsqlite3.lib

Makefile 应该是-lMACLib.so 和 -lsqlite3.so么?
[/Quote]
难道GCC只能链接.so格式的库么?我记得我以前用GCC链接过.lib格式的库的呀
sduxiaoxiang 2012-09-29
  • 打赏
  • 举报
回复
-lMACLib.lib -lsqlite3.lib

Makefile 应该是-lMACLib.so 和 -lsqlite3.so么?
twiker 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

-lwxcode_gtk2u_wxsqlite3-2.9
后面两个文件名字有问题, 只能写上路径 /home/cyy/lib/MACLib.lib ...
[/Quote]
为什么会这样呢?
第一个库前面lib那三个字母和后缀为什么要去掉呢?
还有我已经添加了-L/home/cyy/lib/这个选项,为什么后面两个库还要加上完整的路径呢?
swordtan 2012-09-29
  • 打赏
  • 举报
回复
linux系统中库文件中,若文件库文件名为xxx,那么静态链接库文件为libxxx.lib,动态库文件命名为libxxx.so,此种方式,所以gcc使用此类库的时候,只需-lxxx便可。gcc编译器根据xxx的名称,在库的路径下查找该库文件,默认情况优先查找.so文件,没有.so文件,才使用.lib文件,可通过-static选项,静止使用动态库。


[Quote=引用 1 楼 的回复:]

-lwxcode_gtk2u_wxsqlite3-2.9
后面两个文件名字有问题, 只能写上路径 /home/cyy/lib/MACLib.lib ...
[/Quote]

根据规则,后两个文件的名字确实有问题。
mLee79 2012-09-28
  • 打赏
  • 举报
回复
-lwxcode_gtk2u_wxsqlite3-2.9
后面两个文件名字有问题, 只能写上路径 /home/cyy/lib/MACLib.lib ...

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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