2014-11-02 55 views
0

在/ usr/bin中/ LD:建立/ bsp_src/main.o:未定義的第一參考符號«_ZN5boost6system15system_categoryEv»如何在使用Scons構建時處理此錯誤?

//usr/lib/i386-linux-gnu/libboost_system.so.1.54.0:誤差加法符號:DSO命令行缺少

SConstruct file

我試圖建立這個項目https://github.com/TTimo/es_core,而沒有基於在你的問題中引用的文件SConstruct scons的

+0

您將一個新庫添加到鏈接器輸入中,這是在命令行其餘部分命名的。隱性/間接依賴性不好(現在呢?我認爲這是3年前的變化) – sehe 2014-11-02 14:25:06

回答

2

足夠多的expirience,你'沒有正確鏈接在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的完整列表。