2013-06-20 3 views
1

IDE is VS2012Зачем нужно наращивать, чтобы загрузить загруженный проект?

Я новичок в C++ и пытаюсь получить проект проекта с открытым исходным кодом, который ссылается на некоторые ускоряющие библиотеки. Просто следуя инструкциям «Начало работы», мой вопрос: мне нужно запустить bootstrap.bat и bjam.exe, чтобы увеличить форсирование? будет ли это работать, если я просто добавлю путь boost к projcet, включите путь, чтобы заставить ide найти найденные файлы? если да, то в чем преимущество для ускорения роста?

Спасибо.

ответ

1

Просто изменить путь включения недостаточно, если проект использует библиотеку, которая требует компиляции. Причина в том, что компилятор просто видит директиву include для файла заголовка; он не может догадаться (и почти невозможно догадаться) о том, какие другие .cpp-файлы нужно будет скомпилировать, чтобы получить все, что вам нужно.

Вы могли бы теоретически захватить исходные файлы Boost и напрямую ссылаться на них из своего проекта, но это означает, что вам также нужно отслеживать, каковы их зависимости и захватывать их.

Boost, как и все крупные проекты, имеет систему сборки, в которой эти зависимости уже позаботились. Теоретически вы должны иметь возможность ссылаться на проект системы сборки из своего собственного и говорить: «Используйте это». Однако экстремальное разнообразие в системах сборки C++ означает, что это вообще невозможно; вы не можете ссылаться на проект Boost.Build из Visual Studio или проект SCons от CMake или что-то в этом роде.

Так что, в общем, ваш лучший выбор - построить проект, используя собственную систему сборки, затем взять результат этой сборки (в случае Boost, каталог, полный файлов .lib и .dll) и ссылаться на ваш проект.

+0

спасибо @SebastianRedl, поймите. если компилятор может видеть только заголовки, то как компилятор знает, какая библиотека lib/dll имеет ресурсы для этого h-файла? – Xin

+0

, потому что вы рассказываете об этом через настройки командной строки или проекта –

0

Это зависит. Некоторые библиотеки boost - это только заголовок, который не нужно компилировать. Другие не нужны и должны быть скомпилированы для использования.

+0

Он спрашивает, почему он не может просто скомпилировать их, когда он компилирует базу кода и устанавливает отдельно. – jozefg

+0

Я вижу. Я отредактирую свой ответ. –

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