我在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++/
?别的?
注意:是的,我知道我可以将它们添加到编译器标志中;我在问做更多的事情是否合理。
如果您谈论的是标准C++包含,则应该没有任何必要。注定要使用它们的 g++ 版本应该知道该位置,并且由于您可能有不同的 gcc 版本(例如,MinGW 的版本),因此最好保留它,以免混淆其他编译器。
如果您的编译器在查找自己的包含时遇到麻烦,那么,这完全是另一回事。
如果您对如何以及为什么确定此位置感到好奇,请阅读此处,特别是在选项 --enable-version-specific-runtime-libs ...它说了一些关于"并行使用多个 GCC 版本"的内容。您还可以在 libstdc++-v3 源代码目录下查看实际的配置脚本...
根据我的个人经验,当您为一堆平台创建单个库时,您只是希望(交叉)编译器尽可能独立。如果每个编译器都将其包含放在/usr/include/c++ 中......好吧,这可能会以糟糕的结局结束。事实上,在这种特定情况下,每个编译器尽可能隐藏其特定的头文件和库文件可能是合理的......
只需将它们添加到您的环境变量CPPFLAGS
(或在您的makefile
中):
CPPFLAGS='-I/usr/lib/gcc/i686-pc-cygwin/4.8.2/include/c++/tr1 -I/whatev'