2013-07-30 2 views
0

Alright Итак, прямо сейчас я пытаюсь использовать библиотеки C++ для ускорения в Linux (Ubuntu 12.04), как ранее я использовал их в Windows. Таким образом, используя некоторый пример кода с сайта подпиточного в/usr/bin/ld: не удалось найти -llibboost

testfile.cpp

#include <boost/filesystem/convenience.hpp> 
#include <boost/foreach.hpp> 
#include <boost/range.hpp> 
#include <iostream> 

int main(int, char**) 
{ 
    namespace bf = boost::filesystem; 
    BOOST_FOREACH(bf::path path, 
     boost::make_iterator_range(
      bf::recursive_directory_iterator(bf::path("/home")), 
      bf::recursive_directory_iterator())) { 
    std::cout << path.string() << std::endl; 
} 
return 0; 
} 

Если очень легко собрать с помощью этой команды

g++ -L/usr/local/lib -o "testfile" -llibboost_filesystem 

Моя проблема я получаю ошибку компоновщика

/usr/bin/ld: cannot find -llibboost_filesystem 

и не может показаться фигурой что я пропал без вести. Пожалуйста помоги.

+11

Если не то, что быть '-lboost_filesystem'? – arne

+0

Да, ваше право. Я не понимал, что там были изменены соглашения об именах между файлами. Спасибо – Marstang

+0

Возможный дубликат [/ usr/bin/ld: не удается найти -llibboost \ _filesystem] (http://stackoverflow.com/questions/11526546/usr-bin-ld-cannot-find-llibboost-filesystem) –

ответ

0

По соглашению имена библиотек используют префикс lib для большинства дистрибутивов Linux. Вы должны удалить этот префикс, указав компоновщику, какие библиотеки искать. Предполагая, что гну ld линкер, документация говорит

-l namespec 
--library=namespec 

    Add the archive or object file specified by namespec to the list of files to 
    link. This option may be used any number of times. If namespec is of the 
    form :filename, ld will search the library path for a file called filename, 
    otherwise it will search the library path for a file called libnamespec.a. 

так что вы либо хотите

g++ -L/usr/local/lib -o "testfile" -lboost_filesystem 

или

g++ -L/usr/local/lib -o "testfile" -l :libboost_filesystem.so 
Смежные вопросы