【问题标题】:autoconf libtool library linker path incorrect (need drive-letter) for ld.exeld.exe 的 autoconf libtool 库链接器路径不正确(需要驱动器号)
【发布时间】:2010-03-20 23:12:11
【问题描述】:

我使用 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 路径需要驱动器号,即

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),但我想找到更好的东西。

【问题讨论】:

    标签: linker mingw libtool


    【解决方案1】:

    你需要为它提供unix风格的路径

    -L/cygdrive/D/home/Tam/src/3DS_Games/lib/Random
    

    【讨论】:

    • 我实际上开始使用 CMake,所以我无法用这个解决方案重新测试,但我相信它是正确的。还值得注意的是,cygpath 命令有助于生成 cygwin 或窗口样式路径。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 2015-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多