当我调用构建器时Program(Target, Source, CXXFLAGS=CompileFlags),CompileFlags字符串的值包含-Wl,-rpath,lib:$ORIGIN/../lib导致$ ORIGIN扩展为空字符串,而它应该保持原样.
我试图逃避美元符号,在里面添加单引号,没有任何帮助.
env['RPATH'] = Literal('lib:$ORIGIN/../lib')
它也不起作用:它产生
g++ -o main -Wl,-rpath=lib:/../lib
在命令行中,即使man页面说"添加到RPATH的路径没有被scons以任何方式转换",所以它应该在没有Literal()的情况下工作,我想.
那么如何在没有SCons的情况下添加包含$ TEXT的编译器标志来尝试将其扩展为变量?
谢谢.
小智 6
您可以使用双倍美元,如下所示:
env['RPATH'] = Literal('lib:$$ORIGIN/../lib')
我发现这可以解决扩展问题
    Env['ORIGIN'] = Literal('$ORIGIN')
    Env['RPATH'] = Literal('\'$ORIGIN/../lib:lib\'')
如果您知道更合适/优雅的解决方案,请告诉我。