2013-04-24 3 views
3

Я использую Windows 7 64x и установлен MinGW.Ошибка связи: Boost Library в Windows с использованием MinGW

Моя цель - использовать библиотеки boost на Eclipse (здесь: boost_program_options).

библиотека подталкивания правильно установлена ​​и я могу увидеть файл libboost_program_options-vc90-mt-gd-1_53.lib под C:\MinGW\boost_1_53_0\stage\lib

я теперь пытаюсь связать это в Eclipse, перейдя в Properties -> C/C++ Build -> Settings -> MinGW C++ Linker -> Libraries:

Здесь я ввожу для Library Search Path (-L): C:\MinGW\boost_1_53_0\stage\lib и Libraries (-l): boost_program_options-vc90-mt-gd-1_53

При попытке построить, я получаю следующее Сообща ошибкой e:

11:06:54 **** Build of configuration Debug for project AP **** 
make all 
Building file: ../src/HW1EX1.cpp 
Invoking: GCC C++ Compiler 
g++ -I"C:\MinGW\boost_1_53_0" -I"C:\MinGW\boost_1_53_0\boost\program_options" -I"C:\MinGW\boost_1_53_0\boost" -I"C:\MinGW\boost_1_53_0\boost\program_options\detail" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/HW1EX1.d" -MT"src/HW1EX1.d" -o "src/HW1EX1.o" "../src/HW1EX1.cpp" 
Finished building: ../src/HW1EX1.cpp 

Building target: AP.exe 
Invoking: MinGW C++ Linker 
g++ -LC:\MinGW\boost_1_53_0\stage\lib -static-libgcc -o "AP.exe" ./src/HW1EX1.o -lboost_program_options-vc90-mt-gd-1_53 
c:/mingw/bin/../lib/gcc/mingw32/4.6.2/../../../../mingw32/bin/ld.exe: cannot find -lboost_program_options-vc90-mt-gd-1_53 
collect2: ld returned 1 exit status 
make: *** [AP.exe] Error 1 

11:06:57 Build Finished (took 3s.80ms) 

Кто-нибудь знает, что я могу делать неправильно?

Спасибо за ваше время

ответ

2

Вы, очевидно, загрузили бинарный дистрибутив, который компилируется с Microsoft Visual C++ Compiler (...-vc90-... намек). Или, может быть, вы создали его самостоятельно, но вы сделали это с помощью Microsoft Visual C++ Compiler. Вы должны создать Boost из источника с помощью MinGW, так как вы не можете смешивать код C++, созданный разными компиляторами C++. Другими словами, в вашей ситуации вы не можете ссылаться на библиотеку, созданную Microsoft Visual C++ Compiler, используя MinGW.

Кроме того, я подозреваю, что -LC:\MinGW\boost_1_53_0\stage\lib не будет работать, потому что есть обратные косые черты и он не цитируется. Таким образом, это должно быть либо -L"C:\MinGW\boost_1_53_0\stage\lib", либо -LC:/MinGW/boost_1_53_0/stage/lib. Я бы предпочел второй вариант, поэтому попробуйте изменить обратную косую черту, чтобы переслать их и посмотреть, как это происходит. Также проверьте, что libboost_program_options-mgw46-1_53.a действительно находится в C:\MinGW\boost_1_53_0\stage\lib.

+0

Благодарим вас за это, я заменил boost_program_options-vc90-mt-gd-1_53 с boost_program_options-mgw46-1_53, но я все равно получаю то же сообщение об ошибке. У кого-нибудь есть другие идеи? – user1431340

+0

Обновлено, посмотрите. –

+0

Это сработало? Это не работает или меня –

Смежные вопросы