我创建一个ndk项目使用STL静态库, 但是当我构建elf时,编译器告诉错误:未定义引用' std :: ios_base :: Init :: Init()'等。
我发现当scons构建elf时它会在a.o之前传递stlport.a以便导致问题
那我如何修改SConstruct以将stlport.a放在a.o之后?
答案 0 :(得分:0)
默认链接命令由环境变量LINKCOM / SHLINKCOM定义为:
env['LINKCOM'] = '$LINK -o $TARGET $LINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'
(如果您愿意,请在"打印env.Dump()"在您的某个SConscripts中查看) 您可以重新定义它,并在源之后放置LINKFLAGS
env['LINKCOM'] = '$LINK -o $TARGET $__RPATH $SOURCES $LINKFLAGS $_LIBDIRFLAGS $_LIBFLAGS'
或者将静态库附加到LIBFLAGS变量:
env.Append(LIBFLAGS=['path_of_static_lib_at_end.a'])