build — C ++, ошибка при компоновке. Здание с булочками

Я пытаюсь запустить пример сборки проекта Wt с scons, но я застрял на несколько часов.
Когда я скомпилирую это с командой:

g++ -o hello hello.cc -I/usr/local/include -L/usr/local/lib
-lwthttp -lwt -lboost_random -lboost_regex
-lboost_signals -lboost_system -lboost_thread -lboost_filesystem
-lboost_program_options -lboost_date_time

(ссылка на учебник: http://www.webtoolkit.eu/wt/doc/tutorial/wt.html#_hangman)
все в порядке, и я могу запустить этот простой пример.
Но с моим файлом scons:

env = Environment()

#       Add header search path
env.Append(CPPPATH = ['/usr/include', '/usr/local/include'])

#       Add compile-time flags
env.Append(CCFLAGS=[
#'-Wall','-g',
'-lwt', '-lwthttp',
'-lboost_random', '-lboost_regex', '-lboost_signals',
'-lboost_system', '-lboost_thread', '-lboost_filesystem',
'-lboost_program_options', '-lboost_date_time'
])

#       Add library search path
env.Append(LIBPATH = ['/usr/lib','/usr/local/lib', '/opt/lib'])

env.Program('hello',['exa.cc'])

#Program('exa.cc')
~

Я не могу и получаю следующие ошибки: http://pastebin.com/Ft2b62ie .
Спасибо за любой ответ.

Лукаш.

1

Решение

Следующая SConstruct должна работать для вас:
Единственное отличие состоит в том, чтобы поместить библиотеки в переменную конструкции LIBS SCons и удалить из них ‘-l’, поскольку в SCons это не обязательно.

(Обратите внимание, что это в основном тот же ответ, что и у пользователя 2093113, но с правильно указанными библиотеками: https://stackoverflow.com/a/16555400/1158895)

env = Environment()

#       Add header search path
env.Append(CPPPATH = ['/usr/include', '/usr/local/include'])

#       Add compile-time flags
#env.Append(CCFLAGS=['-Wall','-g'])

# libraries to link against
# Notice you dont need the '-l', since SCons is platform independent
env.Append(LIBS=[
'wt', 'wthttp',
'boost_random', 'boost_regex', 'boost_signals',
'boost_system', 'boost_thread', 'boost_filesystem',
'boost_program_options', 'boost_date_time'
])

#       Add library search path
env.Append(LIBPATH = ['/usr/lib','/usr/local/lib', '/opt/lib'])

# Compile and link the binary
env.Program('hello',['exa.cc'])
3

Другие решения

Ваши флаги компоновщика не должны быть добавлены к CCFLAGS но LIBS вместо.

env.Append(LIBS=[
'-lwt', '-lwthttp',
'-lboost_random', '-lboost_regex', '-lboost_signals',
'-lboost_system', '-lboost_thread', '-lboost_filesystem',
'-lboost_program_options', '-lboost_date_time'
])
-2

По вопросам рекламы [email protected]