2010-03-20 1 views
1

Я использую autoconf, и когда цель является mingw, я использовал флаг -mno-cygwin. Это было удалено, поэтому я пытаюсь использовать цепочку инструментов mingw. Проблема заключается в том линкер не находит мои библиотекиautoconf libtool библиотека linker путь неправильный (требуется диск-буква) для ld.exe

/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 относительный путь или начать его с буквой диска (мои навыки автоконфинурации являются слабыми).

В качестве темного «решения» я удалил использование libtool. Я мог взломать $(DRIVE_LETTER) infront от каждой опции -L, но я хотел бы найти что-то лучшее.

ответ

1

Вы должны обеспечить его дорожками Unix-стиль

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

Я на самом деле перешел на использование CMake, так что я не в состоянии повторить тест с этим решением, однако я считаю, что это правильно. Также стоит отметить, что команда cygpath полезна для создания путей в стиле cygwin или в стиле окна. –