OSX 10.10.5 - c++库,如何更改链接或添加环境标志,以酿造安装版本
OSX 10.10.5 - C++ library, how to change link or add environment flags to brew installed version
我有一个链接库的问题。
我通过brew安装了它的一个版本,但后来我发现我需要在构建中添加环境标志:
CXXFLAGS="-stdlib=libstdc++ -mmacosx-version-min=10.6"
LDFLAGS="-stdlib=libstdc++ -mmacosx-version-min=10.6"
所以我在opt/local/lib安装了另一个使用标志构建的版本。我的问题是操作系统仍然使用brew安装版本。我已经搜索过了,但找不到如何将操作系统链接到正确构建的库或使用标志构建brew版本。
我认为这是问题的原因,是当为ruby构建quantlib-swig时,我得到以下错误,一些论坛说这些错误与环境标志有关:
creating Makefile
compiling quantlib_wrap.cpp
In file included from quantlib_wrap.cpp:2647:
In file included from /usr/local/Cellar/quantlib/1.6.1/include/ql/quantlib.hpp:47:
In file included from /usr/local/Cellar/quantlib/1.6.1/include/ql/math/all.hpp:35:
In file included from /usr/local/Cellar/quantlib/1.6.1/include/ql/math/matrixutilities/all.hpp:4:
In file included from /usr/local/Cellar/quantlib/1.6.1/include/ql/math/matrixutilities/basisincompleteordered.hpp:25:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/valarray:4035:59: error:
'value_type' is a private member of
'boost::iterators::detail::operator_brackets_proxy<QuantLib::step_iterator<double
*> >'
__val_expr<_BinaryOp<__bit_shift_left<typename _Expr::value_type>,
^
quantlib_wrap.cpp:8228:23: note: while substituting deduced template arguments
into function template 'operator<<' [with _Expr =
boost::iterators::detail::operator_brackets_proxy<QuantLib::step_iterator<double
*> >]
s << (*self)[i][j];
^
In file included from quantlib_wrap.cpp:2647:
In file included from /usr/local/Cellar/quantlib/1.6.1/include/ql/quantlib.hpp:47:
In file included from /usr/local/Cellar/quantlib/1.6.1/include/ql/math/all.hpp:35:
In file included from /usr/local/Cellar/quantlib/1.6.1/include/ql/math/matrixutilities/all.hpp:4:
In file included from /usr/local/Cellar/quantlib/1.6.1/include/ql/math/matrixutilities/basisincompleteordered.hpp:25:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/valarray:4036:46: error:
'value_type' is a private member of
'boost::iterators::detail::operator_brackets_proxy<QuantLib::step_iterator<double
*> >'
__scalar_expr<typename _Expr::value_type>, _Expr> >
^
2 errors generated.
make: *** [quantlib_wrap.o] Error 1
关于你的问题的后一部分,如何用标志构建brew版本,你可以在安装函数中使用ENV.append
在OSX上构建quantlib自制配方:
def install
...
if MacOS.version >= :mavericks && ENV.compiler == :clang
ENV.append "CXXFLAGS", "-stdlib=libstdc++ -mmacosx-version-min=10.6"
ENV.append "LDFLAGS", "-stdlib=libstdc++ -mmacosx-version-min=10.6"
end
...
system "make", "install"
end
相关文章:
- 在 CMake 中添加全局编译标志
- 为什么添加延迟会提高此多线程环境中的数据吞吐量?
- CMake:如何在Visual Studio环境中将依赖于模式的编译标志传递给nvcc
- SSE 标志应该如何与现代 CMake 一起添加?
- 添加 swig pythoncode 以在 Python 对象上设置自己的标志
- 是否可以将 VBA 编程环境添加到我的C++应用程序?
- 如何在 CMake 中添加"-l" (ell) 编译器标志
- 如何将我想在C 中使用的C库的库路径添加到环境中
- 添加 g++ 的 -std= 标志时,C++打印到终端的速度要慢得多?
- 在其余标志后面添加-l标志
- 如何忽略随 buildrpm 自动添加的编译器标志
- 如何在不扩展的情况下基于 RHIDE 中的环境变量添加包含目录
- QT 5.7将-STD = GNU 11添加到我的编译器标志,Clobbering -Std = C 14
- 为什么我需要将 -lstdc++ 添加到我的其他链接器标志中
- 如何使用.bat文件在VS2010中添加环境变量
- GCOV 在添加 -rdynamic 标志(通过 gdb 调用__gcov_flush())后停止生成 GCDA 文件
- C++如何在代码中添加环境变量
- 为一个c++ vector成员添加一个标志
- OSX 10.10.5 - c++库,如何更改链接或添加环境标志,以酿造安装版本
- WS_MINIMIZE自己添加的标志