Как устранить пропущенные символы при компиляции кода C ++ с помощью clang 2.8 в Mac OS X 10.6? - PullRequest
3 голосов
/ 25 января 2011

Следующий код, скомпилированный в OS X с помощью clang 2.8 из macports, выдает приведенные ниже ошибки с символами:

   #include <iostream>

   int main()
   {
     std::cout << "hello world" << std::endl;
   }


jonathancoe@MacBookCoe:/tmp$ clang HW.cpp 
Undefined symbols:
  "__ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc", referenced from:
      _main in cc-C9ObsA.o
  "__ZNSt8ios_base4InitC1Ev", referenced from:
      ___cxx_global_var_init in cc-C9ObsA.o
  "__ZNSt8ios_base4InitD1Ev", referenced from:
      ___cxx_global_var_init in cc-C9ObsA.o
  "__ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_", referenced from:
      _main in cc-C9ObsA.o
  "__ZNSolsEPFRSoS_E", referenced from:
      _main in cc-C9ObsA.o
  "__ZSt4cout", referenced from:
      _main in cc-C9ObsA.o
ld: symbol(s) not found

Простая программа прекрасно работает с использованием g ++ без каких-либо дополнительных аргументов.Любые идеи, что я могу сделать, чтобы заставить эту программу связать или объяснения, почему это невозможно (если это так)?

1 Ответ

8 голосов
/ 25 января 2011

Попробуйте:

$ clang++ test.cpp

Если это не помогает, покажите командную строку, которую вы используете.

...