2017-01-31 5 views
0

XCode 5.0.1 me donne une erreur après la compilation réussie de 161 fichiers de projet C++. Il y avait beaucoup de questions d'erreur de Mach-O Linker d'Apple mais aucun m'a aidé.Erreur de liaison Apple Mach-O (ld). ld: -r et -dead-strip ne peuvent pas être utilisés ensemble

Message pour l'erreur est comme suit:

ld: -r and -dead_strip cannot be used together 
clang: error: linker command failed with exit code 1 
(use -v to see invocation) 

La section reliant dans mon cadre de construction est dans l'image suivante:

Linker Section of XCode 5.0.1

Quelqu'un peut-il me faire savoir comment résoudre cette erreur?

MISE À JOUR

Quand je mis Dead Code Stripping à No alors je reçois 19 erreurs de liaison. Mach-O Type est défini sur Dynamic Library pour les deux Release et Debug. erreurs dans ce cas sont les suivantes:

Undefined symbols for architecture x86_64: 
     "boost::re_detail_106000::perl_matcher<__gnu_cxx::__normal_iterator<wchar _t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>,  std::allocator<wchar_t> > >,  std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<wchar_t  const*, std::basic_string<wchar_t, std::char_traits<wchar_t>,  std::allocator<wchar_t> > > > >, boost::regex_traits<wchar_t,  boost::cpp_regex_traits<wchar_t> >  >::construct_init(boost::basic_regex<wchar_t,  boost::regex_traits<wchar_t, boost::cpp_regex_traits<wchar_t> > > const&,  boost::regex_constants::_match_flags)", referenced from: 
     boost::re_detail_106000::perl_matcher<__gnu_cxx::__normal_iterator<wchar_ t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>,  std::allocator<wchar_t> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > >, boost::regex_traits<wchar_t, boost::cpp_regex_traits<wchar_t> > >::perl_matcher(__gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, __gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, boost::match_results<__gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > > > > >&, boost::basic_regex<wchar_t, boost::regex_traits<wchar_t, boost::cpp_regex_traits<wchar_t> > > const&, boost::regex_constants::_match_flags, __gnu_cxx::__normal_iterator<wchar_t const*, std::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> > >) in AdWrksTagDataFactory.o 

et le message d'erreur comme suit:

ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Dans quelques questions semblables que j'avais vu que cela pourrait être dû à plus d'une version de Boost, mais J'ai déjà vérifié ça.

Répondre

0

Réglez simplement Dead Code Stripping sur No. Lorsque cette option est définie sur Yes Xcode ajoutera l'indicateur -dead_strip lors de la liaison qui est non pris en charge lors de la liaison binaires relocatable.

+0

Merci pour la réponse, mais j'ai déjà vérifié. Il me montre 10 erreurs de liaison. – d0mbn00b

+0

Quelles sont les erreurs obtenez-vous? Ils pourraient être sans rapport avec votre question initiale. – Steeve

+0

Je les ai mis à jour dans la question. S'il vous plaît, jetez un oeil. – d0mbn00b