使用Scons构建时如何处理此错误?

时间:2014-11-02 14:19:05

标签: boost scons

/ usr / bin / ld:build / bsp_src / main.o:未定义的第一个引用符号«_ZN5boost6system15system_categoryEv»

// usr / lib / i386-linux-gnu / libboost_system.so.1.54.0:添加符号时出错:命令行中缺少DSO

SConstruct file

我正在尝试构建此项目https://github.com/TTimo/es_core,并且没有使用scons来实现

1 个答案:

答案 0 :(得分: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的完整列表。