2010-09-27 7 views
1

Я использую boost.build для компиляции кода C++, который ссылается на библиотеку, CGNS, но у меня есть некоторые трудности с использованием boost.build для этого. CGNS компилируется в библиотеку с папкой для платформы, например [path]/LINUX для сборки linux. Я хотел бы включить библиотеку [path] /LINUX/libcgns.a в сборку. Я хотел бы, чтобы это было кросс-платформенным, так что каталог LINUX ссылается на сборки LINUX, а каталог WIN используется для сборки WIN (я считаю, что для этого существуют условные условия платформы).Использование Boost.build для включения библиотеки

Мне удалось включить файлы заголовков библиотеки, но как мне перейти к условному включению библиотеки? Мой простой тест Jamroot.jam, где main.cpp - всего лишь пример из документов CGNS.

exe CGNSTest 
    : src/main.cpp 
    : <include>../Dependencies/cgnslib ; 

Кроме того, я хотел бы построить в библиотеке КСГНА в мою бинарную (статическую ссылку?)

ответ

1

Используя две ссылки, http://www.highscore.de/cpp/boostbuild/ и http://www.boost.org/doc/tools/build/doc/userman.pdf, я создал то, что работает, но это не может быть идеал.

lib cgns 
    : # sources 
    : # requirements 
     <name>cgns 
     <target-os>linux:<search>../Dependencies/cgnslib/LINUX 
     <target-os>windows:<search>../Dependencies/cgnslib/WIN32 
    : # default-build 
    : # usage-requirements 
     <include>./../Dependencies/cgnslib ; 
alias static_libraries : cgns : <link>static ; 
exe CGNSTest 
    : src/main.cpp static_libraries 
    : <target-os>windows:<linkflags>/NODEFAULTLIB:MSVCRTD ;