我在Win7 64上使用Cygwin32。我安装了g ++和libstdc ++。 C ++包含位于/usr/lib/gcc/i686-pc-cygwin/4.8.2/include/c++/tr1/
- 但/usr/include
下无处可去。
通过符号链接在/usr/include
下放置它们是否合理?如果没有,为什么?如果是这样,为什么默认情况下不会这样做。符号链接应该是什么? /usr/include/c++/
?还有别的吗?
注意:是的,我知道我可以将它们添加到编译器标志中;我在问这样做是否合理。
答案 0 :(得分:1)
如果您正在谈论标准C ++包含,那么应该没有任何需要。注定要使用它们的g ++版本应该知道该位置,并且由于你可能有不同的gcc版本(例如,MinGW的版本),最好留下它,因为它只是为了不混淆其他编译器。
如果你的编译器遇到麻烦找到自己的包含,那么,这完全是另一回事。
如果您对如何以及为何确定此位置感到好奇,请阅读here,特别是在--enable-version-specific-runtime-libs选项下...它说“使用几个gcc版本”在平行下”。您还可以检查libstdc ++ - v3源代码目录下的实际配置脚本......
根据我的个人经验,当您为一堆平台创建单个库时,您只需要(交叉)编译器尽可能独立。如果每个编译器都将其包含放在/ usr / include / c ++中......那么这可能会结束。实际上,在这种特定情况下,每个编译器都可以合理地隐藏其特定的头文件和库文件......
答案 1 :(得分:0)
只需将它们添加到您的环境变量CPPFLAGS
(或makefile
中):
CPPFLAGS='-I/usr/lib/gcc/i686-pc-cygwin/4.8.2/include/c++/tr1 -I/whatev'