Довольно странная проблема MinGW ld - "collect2: ld вернул 1 состояние выхода" - PullRequest
0 голосов
/ 03 апреля 2011

Я создаю приложение для визуализации данных, и фреймворк, который я использую, прекрасен OpenFrameworks .В Linux он компилируется и работает отлично, но теперь пришло время перенести его на Windows, и я столкнулся с некоторыми очень странными проблемами.Я не могу найти соответствующую информацию из Google.При связывании я получаю следующее:

mingw32-g++.exe  -o bin\visualisation.exe ...blah.o, blah2.o... ...lib1 lib2 lib3...
collect2: ld returned 1 exit status
Process terminated with status 1 (0 minutes, 3 seconds)
0 errors, 0 warnings

(список объектных файлов и библиотек довольно длинный, поэтому я его немного сократил)

Я попытался вручную собрать все библиотеки с нуля, а затемпытаясь снова, но я всегда получаю это.Никаких ошибок, просто не создаются исполняемые файлы.Обычно это проблема с не включенной библиотекой, но тогда компоновщик выдает ошибку.Я также попытался собрать все из командной строки, и я получил тот же результат.

Итак, мой вопрос довольно очевиден, в чем может быть проблема?

Просто упомяну, что я использую Code :: Blocks 8.02, Windows XP Home SP3 и MinGW со следующими компонентами:

gcc-core-3.4.5-20060117-1-vista.tar.gz 
gcc-g++-3.4.5-20060117-1-vista.tar.gz 
mingw-runtime-3.14.tar.gz 
mingw32-make-3.81-2.tar.gz
mingw-utils-0.3.tar.gz
w32api-3.11.tar.gz
binutils-2.18.50-20080109.tar.gz
gdb-6.7.50.20071127-mingw.tar.bz2

Редактировать: Журнал при компиляции из командной строки (cmd.exe):

C:\openFrameworks\apps\examples\GraphVisualOFv2>mingw32-g++.exe  -o     bin\visualisation.exe obj\release\src\dataAccess\DBDataLoader.o obj\release\src\dataAccess\DataLoader.o obj\release\src\dataAccess\XMLDataLoader.o obj\release\src\dataAccess\c\sacapidll.o obj\release\src\engine\Engine.o obj\release\src\engine\config\Configuration.o obj\release\src\engine\config\ConfigurationControler.o obj\release\src\graph\Edge.o obj\release\src\graph\Graph.o obj\release\src\graph\Vertex.o obj\release\src\main.o obj\release\src\math\AlgorithmicPositioning.o obj\release\src\math\Positioning.o obj\release\src\math\RandomPositioning.o obj\release\src\metaLayer\MetaEdge.o obj\release\src\metaLayer\MetaGraph.o obj\release\src\metaLayer\MetaVertex.o obj\release\src\testApp.o   ../../../libs/openFrameworksCompiled/lib/win_cb/openFrameworks.lib ../../../libs/FreeImage/lib/win_cb/FreeImage.lib ../../../libs/rtAudio/lib/win_cb/librtaudio.a ../../../libs/rtAudio/lib/win_cb/RtAudio.a ../../../libs/rtAudio/lib/win_cb/RtAudioD.a ../../../libs/quicktime/lib/win_cb/qtmlClient.lib ../../../libs/freetype/lib/win_cb/libfreetype.a ../../../libs/glut/lib/win_cb/libglut.a ../../../libs/videoInput/lib/win_cb/videoInputLib.a ../../../libs/fmodex/lib/win_cb/libfmodex.a ../../../libs/glee/lib/win_cb/GLee.lib ../../../libs/glew/lib/win_cb/glew32s.lib ../../../libs/glu/lib/win_cb/glu32.lib ../../../libs/poco/lib/win_cb/libPocoNetmt.a ../../../libs/poco/lib/win_cb/libPocoUtilmt.a ../../../libs/poco/lib/win_cb/libPocoXMLmt.a ../../../libs/poco/lib/win_cb/libPocoFoundationmt.a ../../../libs/asa/lib/win_cb/dbcapi.lib ../../../libs/asa/lib/win_cb/dbextenv11.lib ../../../libs/asa/lib/win_cb/dblibtm.lib ../../../libs/asa/lib/win_cb/dbmlsynccli11.lib ../../../libs/asa/lib/win_cb/dbtlstm.lib ../../../libs/asa/lib/win_cb/odbc32.lib ../../../libs/asa/lib/win_cb/qany11.lib ../../../libs/dlfcn/lib/libdl.a ../../../libs/rudeconfig/lib/librudeconfig.a ../../../libs/freeglut/lib/libfreeglut.a -lopengl32 -lglu32 -ldsound -lwinmm -ldxguid -lstrmbase -lstrmiids -lz -luuid -lole32 -loleaut32 -lsetupapi -lwsock32 -lws2_32 -lIphlpapi
collect2: ld returned 1 exit status

C:\openFrameworks\apps\examples\GraphVisualOFv2>

1 Ответ

1 голос
/ 03 апреля 2011

Я нашел решение, настроив среду для прямого вызова ld.exe с

-verbose

флаг и получил тонны информации. Я на самом деле забыл настроить библиотеки разработки opengl32, поэтому компоновщик не смог их найти.

...