如何使 scons 在 libpath 中附加正斜杠 '/'
How to make scons append a forward slash '/' in the libpath
我一直在努力解决我在使用 SCons 时处理过的最小的问题,但这种琐碎似乎不像问题本身那样容易消失。
所以情况是这样的。
我有一个项目,当我在 XCode 的一个系统库中的 libpath 末尾附加一个正斜杠时,它可以完美编译。
当我把它交给SCons时,它是如何剥离斜杠并调用一个没有斜杠的g ++ -out。
当我手动使用它用斜杠调用的 g++ 命令时,它可以工作。
以下是帮助您理解的代码片段。
这是追加库的代码:
env.AppendUnique(LIBPATH = [r'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk/usr/lib/system/'])
如您所见,我在"usr/lib/system"后面有一个斜杠。
这是SCons调用的g ++命令:
g++ -o output.dylib stuff.os -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk/usr/lib/system -otherstuff...
如您所见,斜杠在最后被绊倒。
因此,如果我这样做:
g++ -o output.dylib stuff.os -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.3.sdk/usr/lib/system/ -otherstuff...
一切都很完美。
关于如何解决愚蠢新手的这个愚蠢问题的任何想法?
提前非常感谢你们!
正如你所注意到的,SCons 在构造 link 命令时对库路径进行了一些解释。您可以通过直接通过 LINKFLAGS
环境变量向 link 命令提供标志来解决此问题,绕过导致问题的路径的LIBPATH
。
这使得您的 SConstruct 的可移植性降低,因为您必须自己指定命令行选项。
指导:
# SConstruct
libdir1 = '/Users/dave/lib1/'
libdir2 = '/Users/dave/lib2/'
env = Environment(LIBPATH = libdir1, LINKFLAGS = ['-L' + libdir2])
program = env.Program('test', 'test.c')
生成以下输出:
$ scons
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
gcc -o test.o -c test.c
gcc -o test -L/Users/dave/lib2/ test.o -L/Users/dave/lib1
scons: done building targets.
请注意,lib2 上的尾随空格被保留。
我不清楚为什么会发生此错误,根本原因值得进一步调查。
相关文章:
- 如何在 C 中正确使用 libiconv 使其不会报告"Arg list too long"?
- std::vector的包装器,使数组的结构看起来像结构的数组
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 如何在全屏模式下(在OpenGL中)使背景透明
- 找到两对数字,使它们的乘积的绝对差最小化
- C++:如何使函数只返回作为列表一部分的字符串
- Python中的for循环与C++有何不同
- c++使用foreach使数组为null
- 使外部项目可用于find_package CMake
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 是否可以在C++中使变量真正只读
- 有可能使shared_ptr协变吗
- 使lambda不可复制/不可移动
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 如何使用OpenMP使这个循环并行
- 根据变量使Qt UI中的复选框为已选中/未选中
- 如何使 windows 命令提示符在C++可执行文件上显示返回值?
- 如何使 scons 在 libpath 中附加正斜杠 '/'
- SCons:如何使库拾取CPPPATH选项
- C++11编译器何时会使RVO和NRVO优于移动语义和常量引用绑定