ACE 在 MAC OS X 10.9(及更高版本)中的 Linker 上失败
ACE fails at Linker in MAC OS X 10.9 (and higher)
我正在尝试使用 CLANG++ 在 MAC OS X 10.9 中编译和运行以下简单代码:
#include "ACE_wrappers/ace/MEM_Stream.h"
#include <iostream>
int main()
{
std::cout << "Hello World" << std::endl;
ACE_MEM_Stream m(3);
m.close_reader();
return 0;
}
但是我收到以下错误:
QAs-MacBook:aceTestLinking Moamen$ clang++ myTest.cpp
Undefined symbols for architecture x86_64:
"ace_os_main_i(int, char**)", referenced from:
_main in moamen-511a28.o
"ACE_SOCK::ACE_SOCK()", referenced from:
ACE_MEM_IO::ACE_MEM_IO() in moamen-511a28.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
编译行:
clang++ myTest.cpp
我正在使用的CLANG编译器版本:
QAs-MacBook:aceTestLinking Moamen$ clang++ --version
Apple LLVM version 6.0 (clang-600.0.54) (based on LLVM 3.5svn)
Target: x86_64-apple-darwin13.4.0
Thread model: posix
注意 - 我也尝试使用"-std=c++11","-stdlib=libstdc++"进行编译,如以下主题所示:升级到Mac OS X 10.9/Xcode 5.0.1后C++链接错误 但没有解决问题。
谢谢
莫阿门
感谢您的回复,在对 Linux Ubuntu 进行了一些调查后,我成功地使用以下命令编译了代码 g++ -o m.out myTest.cpp ACE_wrappers/lib/libACE.a -I ACE_wrappers/-lpthread -ldl.似乎缺少一些默认库!
相关文章:
- 有没有办法在不使用 #ifdef 的情况下不编译发布版本中的单元测试函数体?
- 发布版本中的 Qt 隐形组合框(但不在调试版本中)
- C++发布版本中的未来错误值
- 将旧版C++标准库从GNU版本移动到LLVM版本中的版本
- 将用户输入绑定到UE4.22.3及更高版本中的UActorComponent方法
- 是 GCC 6.2 或更高版本中的 C++20 实验范围
- C++版本中的 Anymote 示例代码
- DialogBoxParam()方法未调用IE 9或更高版本中的GUI
- 仅限版本中的Bug
- 如何在应用程序退出时诊断comptr版本中的异常
- 发布版本中的运行时间过长(调试版本正常)
- 视觉C++发布版本中的 6 个编译错误
- C++11 及更高版本中的替代 STL 实现
- 调试和发布版本中的执行时间很奇怪
- msvc版本中的链接器不匹配.有什么变通办法吗
- Visual Studio 版本中的 Math 函数问题
- Static_cast_tag()在最新boost版本中的替代品
- 发布版本中的缓存刷新问题
- 背景减法 – opencv 最新版本中的 Stauffer & Grimson 算法
- NaN在不同g++版本中的处理方式不同