Ошибка компиляции в C ++ с Simple_ls.cpp - неопределенная ссылка на boost :: filesystem :: path :: filename

0

Я как бы "новый" для C/C++. Я много часов бил головой в стол, пытаясь установить Boost и работать с MinGW на моем 64-битном компьютере Windows 8. В моем поиске ответа я нашел MinGW, скомпилированный с библиотеками Boost 1.55. После двойного нажатия на open_distro_window.bat ошибки были изменены на что-то другое. Используя пример simple_ls.cpp с сайта Boost, я получил следующие ошибки:

> g++ simple_ls.cpp -o simple_ls.exe
C:\Users\joe\AppData\Local\Temp\ccQLpVCt.o:simple_ls.cpp:(.text+0x1ba): undefined reference to 'boost::filesystem::path::filename() const'
C:\Users\joe\AppData\Local\Temp\ccQLpVCt.o:simple_ls.cpp:(.text+0x23a): undefined reference to 'boost::filesystem::path::filename() const'
C:\Users\joe\AppData\Local\Temp\ccQLpVCt.o:simple_ls.cpp:(.text+0x294): undefined reference to 'boost::filesystem::path::filename() const'
C:\Users\joe\AppData\Local\Temp\ccQLpVCt.o:simple_ls.cpp:(.text+0x4bf): undefined reference to 'boost::filesystem::path::filename() const'
c:/mingw-boost/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.8.2/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\Users\joe\AppData\Local\Temp\ccQLpVCt.o: bad reloc address 0x0 in section '.data'
collect2.exe: error: ld returned 1 exit status

Я также попробовал первый образец, Boost Getting Started Link Your Program, и я все еще сталкивался с большим количеством ошибок, но по одной штуке одновременно. Есть ли что-то, что мне не хватает, это настройка для этого MinGW, скомпилированного с Boost bad, или это Windows 8? Это ссылка на ошибки в GitHub.

  • 0
    Ваша ссылка должна быть связана с boost_filesystem.
  • 0
    Вы имеете в виду, когда я использую g++ simple_ls.cpp -o simple_ls.exe я должен использовать опцию -l ? Или что-то похожее на помещение препроцессора? Я не слишком увлечен такими вещами.
Показать ещё 1 комментарий
Теги:
boost
mingw

1 ответ

0
Лучший ответ

используйте g++ с -l library_filename. Если ваша библиотека boost не находится в пути к lib, используйте -l BOOST_LIB_DIR, дайте компилятору посмотреть в указанном каталоге для файла библиотеки.

  • 0
    Получение где-то. Теперь я получаю только одну ошибку. >g++ -l "C:\MinGW-Boost\MinGW\lib\" simple_ls.cpp -o simple_ls.exe c:/mingw-boost/mingw/bin/../lib/gcc/x86_64-w64-mingw32/4.8.2/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lC:\MinGW-Boost\MinGW\lib" simple_ls.cpp -o simple_ls.exe collect2.exe: error: ld returned 1 exit status Это ссылка на программу установки переменных среды. gist.github.com/predatorian3/9062785#file-boost_system_vars-bat
  • 0
    Имя файла (например, libboost_filesystem *) в boost_filesystem должно указываться после параметра -l , а не каталога.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню