2014-11-02 2 views
0

/USR/бен/л.д.: построить/bsp_src/main.o: Undefined первый символ, на который ссылается «_ZN5boost6system15system_categoryEv»Как справиться с этой ошибкой при сборке с помощью Scons?

//usr/lib/i386-linux-gnu/libboost_system.so.1.54.0: ошибка при добавлении символы: DSO пропавшие из командной строки

SConstruct file

Я пытаюсь построить этот проект https://github.com/TTimo/es_core и не Expirience с чего прийти SCons

+0

Вы добавляете новую библиотеку в входы компоновщика, которая называется в остальной части командной строки. Неявные/косвенные зависимости не в порядке (больше? Я думаю, что это было изменение около 3 лет назад) – sehe

ответ

2

на основе файла SConstruct ссылается на свой вопрос, 'неверно ссылка в библиотеке boost_system. Вы делаете это следующим образом:

env.Append(CCFLAGS = [ '-g', '-lboost_system', ]) 

Переменная CCFLAGS должна быть использована для передачи флагов компиляции для компилятора. Флаг -l должен быть передан компоновщику, а не компилятору. Правильный способ сделать это в SCons выглядит следующим образом:

env.Append(LIBS = ['boost_system']) 

Обратите внимание, я не добавить -l флаг, а SCons делает это для вас в независимой от платформы способом.

Вы можете также определить путь к библиотеке, которая осуществляется следующим образом:

env.Append(LIBPATH = '/put/the/path/here') 

Как с LIBS, вам не нужно, чтобы добавить -L флаг LIBPATH как SCons добавит его ,

Полный список SCons Construction Variables.

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