在OSX中使用什么体系结构
What architecture to use in OSX?
我完成了以openmpi为底层实现的boost mpi的安装,并试图编译一个简单的程序进行测试。
我编译我的boost mpi库如下:
./bjam toolset=darwin architecture=x86 address-model=32 install
我用以下代码编译了我的mpi程序:
mpic++ -I/opt/boost_1_46_1/include mpi_play.cpp -L/opt/boost_1_46_1/lib -lboost_mpi -lboost_serialization
但上面写着
ld: warning: in /opt/boost_1_46_1/lib/libboost_mpi.dylib, file was built for i386 which is not the architecture being linked (x86_64)
我知道我使用的bjam命令用于在i386中构建库。这就是我在XCode中使用boost线程库所需要做的。所以,现在我不确定让所有这些boost库和mpi库在mac中工作的最佳方法是什么。
如果您想要i386构建,请将-arch i386
传递给mpic++,后者应将其传递给底层编译器。
将address-model=64
传递到bjam命令行,以创建一个可以链接到代码的x86_64 MPI库。或者将您的代码编译为x86(-arch i386
),以使用您之前编译的已存在的x86 MPI库。
相关文章:
- vscode g++链路故障:体系结构x86_64的未定义符号
- 体系结构x86_64的未定义符号:std:terminate(),typeinfo,运算符delete[],运算符new
- OSX clang++:用于 cpp 文件中显式实例化模板的体系结构x86_64的未定义符号
- PCL 出错:体系结构x86_64 @pcl的未定义符号
- clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:
- 体系结构x86_64的未定义符号:链接器错误
- C++ std::vector<int> 体系结构的未定义符号 x86_64:
- 未使用的 asm() 在不受支持的体系结构上的行为
- 用于本地网络运行的客户端服务器体系结构
- 生成文件:体系结构x86_64的未定义符号
- Xcode"体系结构x86_64的未定义符号"
- 有了memory_order_relaxed,原子变量的总修改顺序如何在典型体系结构上得到保证
- 体系结构x86_64的未定义符号:找不到原因
- 在OSx:ld上使用CMake构建C++项目:找不到体系结构x86_64的符号
- 体系结构x86_64的未定义符号:c++/ h 文件和 cpp 文件
- 以编程方式在运行时检测 CPU 体系结构
- arm和x86体系结构中的c/c++语言有什么不同
- 在OSX中使用什么体系结构
- c++体系结构:它与机器体系结构有什么相似之处?
- 在多个线程之间频繁通信值的最佳体系结构是什么?