2013-06-03 1 views
1

Я написал программу с использованием файла заголовка boost shared_ptr. Как скомпилировать эту программу? какую библиотеку я упоминаю с помощью опции -l g ++ при компиляции.Как скомпилировать программу C++ с помощью boost/shared_ptr.hpp на linux с g ++

+1

Не отвечаю на вопрос, но может ответить на вашу проблему: std :: shared_ptr <> теперь поддерживается стандартной библиотекой только '#include '. –

ответ

6

Укажите каталог, содержащий каталог boost, который содержит файлы заголовков. Например:

  • установка наддува:

    /home/user/boost_1_53_0/boost/shared_ptr.hpp

  • включать:

    #include <boost/shared_ptr.hpp> 
    
  • в компилировать (примечание -I, нет -l):

    г ++ -I/дом/пользователь/boost_1_53_0 main.cpp -o главный

Обратите внимание, что нет динамического связывания требуется как boost::shared_ptr шаблон и полностью определяется в файле заголовка.

Если ваш компилятор поддерживает C++ 11, используйте вместо std::shared_ptr<> (как прокомментировал Roee):

  • включать:

    #include <memory> // use std::shared_ptr<T> 
    
  • компиляции:

    g ++ -std = C++ 11 main.cpp -o main

+0

Обратите внимание, что '-I' здесь является заглавной буквой i для указания включенных каталогов (в вопросе OP записал строчный L, который не нужен). – interjay

+0

@interjay, да. Это ответ «-I» в моем ответе, хотя это не ясно, как в комментарии. – hmjd

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