xcode — ошибки компоновщика для тестового приложения C ++ framework

Я хотел бы использовать AA + астрономический класс и я просто хочу запустить пример приложения (оно включено в каркас почтовый файл как AATest.cpp)

Я открыл Xcode, создал новый проект для приложения C ++, а затем добавил AA+.h а также stdafx.h файлы в проект, так как они включены. Затем, когда я строю проект, я получаю много ошибок компоновщика, так как кажется, что он не может найти символы, связанные с некоторыми примерами кода приложения.

Я попытался добавить путь к AA+.h а также stdafx.h файлы к библиотеке и пути поиска заголовка в пределах настроек Build в XCode, но это ничего не изменило, и ошибки все еще там.

Что я делаю неправильно? Я впервые работаю с C ++ в XCode. Должен ли я сначала создать фреймворк AA + как статическую библиотеку или я могу просто включить его таким образом?

Компиляция через Xcode:

Ld /Users/me/Library/Developer/Xcode/DerivedData/AAPlus-bzgonjwgqlpgescueekcoobljdyf/Build/Products/Debug/AAPlus normal x86_64
cd "/Users/me/Downloads/aaplus astronomy c++/Example/AAPlus"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/me/Library/Developer/Xcode/DerivedData/AAPlus-bzgonjwgqlpgescueekcoobljdyf/Build/Products/Debug -F/Users/me/Library/Developer/Xcode/DerivedData/AAPlus-bzgonjwgqlpgescueekcoobljdyf/Build/Products/Debug -filelist /Users/me/Library/Developer/Xcode/DerivedData/AAPlus-bzgonjwgqlpgescueekcoobljdyf/Build/Intermediates/AAPlus.build/Debug/AAPlus.build/Objects-normal/x86_64/AAPlus.LinkFileList -mmacosx-version-min=10.7 -stdlib=libc++ -o /Users/me/Library/Developer/Xcode/DerivedData/AAPlus-bzgonjwgqlpgescueekcoobljdyf/Build/Products/Debug/AAPlus

Ошибки:

Undefined symbols for architecture x86_64:
"CAANutation::TrueObliquityOfEcliptic(double)", referenced from:
GetSolarRaDecByJulian(double, double&, double&) in main.o
GetLunarRaDecByJulian(double, double&, double&) in main.o
"CAADynamicalTime::DeltaT(double)", referenced from:
GetSolarRaDecByJulian(double, double&, double&) in main.o
"CAARiseTransitSet::Calculate(double, double, double, double, double, double, double, double, double, double)", referenced from:
GetSunRiseTransitSet(double, double, double) in main.o
GetMoonRiseTransitSet(double, double, double) in main.o
"CAAMoonIlluminatedFraction::PhaseAngle(double, double, double)", referenced from:
GetMoonIllumination(double, double&, double&, double&) in main.o
"CAAMoonIlluminatedFraction::PositionAngle(double, double, double, double)", referenced from:
GetMoonIllumination(double, double&, double&, double&) in main.o
"CAAMoonIlluminatedFraction::IlluminatedFraction(double)", referenced from:
GetMoonIllumination(double, double&, double&, double&) in main.o
"CAAMoonIlluminatedFraction::GeocentricElongation(double, double, double, double)", referenced from:
GetMoonIllumination(double, double&, double&, double&) in main.o
"CAACoordinateTransformation::Ecliptic2Equatorial(double, double, double)", referenced from:
GetSolarRaDecByJulian(double, double&, double&) in main.o
GetLunarRaDecByJulian(double, double&, double&) in main.o
"CAASun::ApparentEclipticLatitude(double)", referenced from:
GetSolarRaDecByJulian(double, double&, double&) in main.o
"CAASun::ApparentEclipticLongitude(double)", referenced from:
GetSolarRaDecByJulian(double, double&, double&) in main.o
"CAADate::CAADate(double, bool)", referenced from:
PrintTime(double, char const*) in main.o
"CAADate::CAADate(long, long, double, bool)", referenced from:
PrintSunAndMoonInfo(int, int, int, double, double) in main.o
"CAAMoon::EclipticLatitude(double)", referenced from:
GetLunarRaDecByJulian(double, double&, double&) in main.o
"CAAMoon::EclipticLongitude(double)", referenced from:
GetLunarRaDecByJulian(double, double&, double&) in main.o
"CAADate::Get(long&, long&, long&, long&, long&, double&) const", referenced from:
PrintTime(double, char const*) in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

0

Решение

XCode

Вы можете сделать следующее в XCode:

  1. Создать новый проект AATest
  2. Скопируйте свой aaplus/ папка с кодом фреймворка в папку вашего проекта
  3. В вашем проекте XCode удерживайте контроль и нажмите на Источник
  4. Выбрать Добавить> Существующие файлы …
  5. Выбрать aaplus/ папка и добавлять это к вашему проекту
  6. Построить.

Исполняемый файл будет в build/Debug/AATest,

альтернатива

Как проект включает в себя файл CMakeLists.txtвы можете построить свою программу, используя cmake, Внутри вашей папки фреймворка выполните следующие команды на своем терминале:

mkdir build/
cd build/
cmake ..
make
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]