ld.exe 的 autoconf libtool 库链接器路径不正确(需要驱动器号)
我使用 autoconf,当目标是 mingw 时,我使用 -mno-cygwin 标志。这已被删除,所以我正在尝试使用 mingw 工具链。问题是链接器找不到我的库
/bin/sh ../../../libtool --tag=CXX --mode=link mingw32-g++ -g -Wall -pedantic -DNOMINMAX -D_REENTRANT -DWIN32 -I /usr/local/include/w32api -L/usr/local/lib/w32api -o testRandom.exe testRandom.o -L../../../lib/Random -lRandom
libtool: link: mingw32-g++ -g -Wall -pedantic -DNOMINMAX -D_REENTRANT -DWIN32 -I /usr/local/include/w32api -o .libs/testRandom.exe testRandom.o -L/usr/local/lib/w32api -L/home/Tam/src/3DS_Games/lib/Random -lRandom
D:\cygwin\opt\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lRandom
要使用 mingw 链接器从命令行链接此库,-L
路径需要驱动器号 ie 才能
mingw32-ld testRandom.o -LD:/home/Tam/src/3DS_Games/lib/Random -lRandom
工作。 -L
路径是从 makefile.am
生成的,但是
LDADD = -L$(top_builddir)/lib/Random -lRandom
我找不到如何将 top_builddir
设置为相对路径或者用驱动器号启动它(我的 autoconf 技能很弱)。
作为临时“解决方案”,我删除了 libtool 的使用。我可以在每个 -L 选项前面添加一个 $(DRIVE_LETTER)
,但我想找到更好的东西。
I use autoconf and when the target is mingw I was using the -mno-cygwin flag. This has been removed so I'm trying to using the mingw tool chain. The problem is the linker isn't finding my libraries
/bin/sh ../../../libtool --tag=CXX --mode=link mingw32-g++ -g -Wall -pedantic -DNOMINMAX -D_REENTRANT -DWIN32 -I /usr/local/include/w32api -L/usr/local/lib/w32api -o testRandom.exe testRandom.o -L../../../lib/Random -lRandom
libtool: link: mingw32-g++ -g -Wall -pedantic -DNOMINMAX -D_REENTRANT -DWIN32 -I /usr/local/include/w32api -o .libs/testRandom.exe testRandom.o -L/usr/local/lib/w32api -L/home/Tam/src/3DS_Games/lib/Random -lRandom
D:\cygwin\opt\MinGW\bin\..\lib\gcc\mingw32\3.4.5\..\..\..\..\mingw32\bin\ld.exe: cannot find -lRandom
To link this from the command line using the mingw linker the -L
path needs the drive letter i.e
mingw32-ld testRandom.o -LD:/home/Tam/src/3DS_Games/lib/Random -lRandom
works. The -L
path is generated from the makefile.am
's which have
LDADD = -L$(top_builddir)/lib/Random -lRandom
However I can't find how to set top_builddir
to a relative path or to start it with the drive letter (my autoconf skills are weak).
As a tempoary "solution" I have removed the use of libtool. I could hack a $(DRIVE_LETTER)
infront of every -L option, but I'd like to find something better.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你需要给它提供unix风格的路径
You need to provide it with unix-style paths