Как связать библиотеки в C ++ в Eclipse? - PullRequest
0 голосов
/ 27 декабря 2018

Когда вы смотрите на этот ответ о переполнении стека, он говорит "связать с -lboost_filesystem -lboost_system".Может кто-нибудь помочь мне найти, где изменить настройки, чтобы я мог это реализовать?Я пытался сделать это в настройках «Путь и символы», но я получаю:

C:/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/7.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -lboost_system

Это код, который не запускается, предположительно из-за этой проблемы:

#include <iostream>
#include <boost/filesystem.hpp>
using namespace std;
using namespace boost::filesystem;

int main()
{
    path p("D:/foo/Downloads");
    for (auto i = directory_iterator(p); i != directory_iterator(); i++)
    {
        if (!is_directory(i->path()))
        {
        cout << i->path().filename().string() << endl; //error: undefined reference to a ton of stuff
        }
        else
            continue;
    }
}

1 Ответ

0 голосов
/ 27 декабря 2018

Если библиотеки находятся в пределах путей поиска, указанных в Пути и символы , то библиотека, вероятно, просто должна быть связана в свойствах проекта -

  1. Щелкните правой кнопкой мыши имя проектав проводнике, перейдите в Свойства> Сборка C / C ++> Настройки> Настройки инструмента
  2. Разверните раскрывающийся список для компоновщика для вашего компилятора (например, Cross G ++ Linker)
  3. Нажмите + в Библиотеки (-l)
  4. Введите имя библиотеки, с которой вы хотите связать (без -l - для -lboost_filesystem вы просто набираете boost_filesystem) и нажмите Ok

Если это не так (возможно, даже если они есть), возможно, также потребуется добавить путь к библиотеке в раздел Путь поиска библиотеки (-L) , нажав+ и ввод пути к файлам библиотеки (т. Е. libboost_filesystem.so и libboost_system.so).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...