Сбой ACE на компоновщике в MAC OS X 10.9 (и выше)

Я пытаюсь скомпилировать и запустить следующий простой код в MAC OS X 10.9 с CLANG++:

#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++", как в следующей теме: Ошибка компоновки C++ после обновления до Mac OS X 10.9 / Xcode 5.0.1, но не удалось решить вопрос.

Спасибо,

Moamen

1 ответ

Решение

Спасибо за ответы, после некоторого изучения Linux Ubuntu мне удалось скомпилировать код с помощью следующей команды g++ -o m.out myTest.cpp ACE_wrappers/lib/libACE.a -I ACE_wrappers/ -lpthread -ldl. Кажется, некоторые стандартные библиотеки отсутствовали!

Другие вопросы по тегам