Прошу просить задать вопрос, который появляется повсюду в разных формах, но это меня разрывает мои волосы, и я пробовал каждое предложение со всех темных углов Интернета.Связывание библиотек C++ (для Wt) в Xcode
Я пытаюсь использовать структуру Wt (для веб-приложений на C++) с помощью Xcode. Его файлы заголовков находятся в каталоге/usr/local/include, а его файлы библиотеки (и boost) находятся в/usr/local/lib. Я могу скомпилировать на терминале
gcc -o hello testWt.cpp -lstdc++ -lwt.3.3.0 -lwthttp.3.3.0 -lboost_random -lboost_regex -lboost_signals -lboost_system -lboost_thread -lboost_filesystem -lboost_program_options -lboost_date_time
, но в пределах Xcode Мне не повезло. Я пробовал:
- Добавление -I/USR/местные/включают в
OTHER_C++_FLAGS
опции - Добавление/USR/местные/Библиотека для
Library Search Paths
опции - Добавление/USR/местные/включают в
Header Search Paths
- Перетаскивание все библиотеки (как .dylib и/или версии .a) в «Link Binary с библиотеками» раздела
- все комбинации выше
Теперь я трепку голову против этой ошибки компоновщика:
Ld /Users/charles/Library/Developer/Xcode/DerivedData/Test-dzrqjofmpnjowvcwtscacpwnhtqw/Build/Products/Debug/Test normal x86_64
cd /Users/charles/tmp/Test
setenv MACOSX_DEPLOYMENT_TARGET 10.7
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -L/Users/charles/Library/Developer/Xcode/DerivedData/Test-dzrqjofmpnjowvcwtscacpwnhtqw/Build/Products/Debug -L/usr/local/lib -F/Users/charles/Library/Developer/Xcode/DerivedData/Test-dzrqjofmpnjowvcwtscacpwnhtqw/Build/Products/Debug -filelist /Users/charles/Library/Developer/Xcode/DerivedData/Test-dzrqjofmpnjowvcwtscacpwnhtqw/Build/Intermediates/Test.build/Debug/Test.build/Objects-normal/x86_64/Test.LinkFileList -mmacosx-version-min=10.7 -stdlib=libc++ -lwt.3.3.0 -lwthttp.3.3.0 -lboost_atomic -lboost_chrono -lboost_context -lboost_date_time -lboost_exception -lboost_filesystem -lboost_graph -lboost_iostreams -lboost_locale -lboost_math_c99 -lboost_math_c99f -lboost_math_c99l -lboost_math_tr1 -lboost_math_tr1f -lboost_math_tr1l -lboost_prg_exec_monitor -lboost_program_options -lboost_python -lboost_random -lboost_regex -lboost_serialization -lboost_signals -lboost_system -lboost_test_exec_monitor -lboost_thread -lboost_timer -lboost_unit_test_framework -lboost_wave -lboost_wserialization -o /Users/charles/Library/Developer/Xcode/DerivedData/Test-dzrqjofmpnjowvcwtscacpwnhtqw/Build/Products/Debug/Test
Undefined symbols for architecture x86_64:
"Wt::WApplication::makeAbsoluteUrl(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const", referenced from:
vtable for HelloApplication in main.o
ld: symbol(s) not found for architecture x86_64
Далее, чем это я не могу. Это первый раз, когда я использовал Xcode для разработки, поэтому я могу пропустить что-то очевидное; Я был бы невероятно благодарен, если бы кто-нибудь мог это указать!
Вы уверены, что используете одну и ту же целевую среду? Извините, но я не испытываю xcode, но ваша ошибка, похоже, связана с проблемой кросс-платформы? –
Да, все библиотеки были построены на том же компьютере. В конце концов я это выяснил (см. Ответ ниже): это потому, что библиотеки были построены с использованием разных стандартных библиотек. – CharlieB