2013-03-22 3 views
1

Наша система имеет усиление, установленное в двух разных местах: одно в/usr/..., а другое - пользовательская установка в другом каталоге. Я хочу включать только заголовки/библиотеки из пользовательской установки, но scons продолжает собирать стандартный путь в/usr/...Сконфигурирует библиотеки в двух разных местах.

Есть ли способ заставить scons видеть только заголовки/библиотеки в пользовательском каталоге , Я добавил этот путь к моей переменной CPPPATH, но также есть путь/usr/include, который мне нужен для других заголовков C++?

ответ

1

включаемой каталоги («-I») ищутся в левой направо порядке и до стандартных путей (http://gcc.gnu.org/onlinedocs/cpp/Search-Path.html)

Попробуйте предваряя ваш CPPPATH используя PREPEND:

env = Environment() 
env.Prepend(CPPPATH = ['/opt/boost']) 

Вот ссылка for Prepend: http://www.scons.org/doc/HTML/scons-user/x1444.html#AEN1719

+1

OP, возможно, необходимо будет сделать то же самое для путей библиотеки с помощью переменной построения LIBPATH, если использовать любую из ускорителей libs. – Brady

+0

Это не работает, похоже, что каталоги/usr/include/usr/lib заранее определены каким-то образом с помощью scons. Я не вижу их в каких-либо переменных окружения. – mike

+0

Nevermind Я, должно быть, делал что-то неправильно, теперь он работает, используя Prepend option – mike

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