Ошибка компилятора при попытке связать статическую библиотеку C ++ с MonoDevelop - PullRequest
0 голосов
/ 09 июля 2011

Я создал очень простую библиотеку C ++ в xcode, в основном это было:

//Numbers.h
class Numbers
{
public:
 int Get10();
}

//Numbers.cpp
int Numbers::Get10()
{
  return 10;
}

Я скомпилировал ее в статическую (отладочную) библиотеку, затем тщательно следовал инструкциям здесь дошаг 2, я не смог продвинуться дальше, потому что код больше не будет компилироваться, это в основном то, что выводит компилятор перед тем, как дать мне сообщение «mtouch fail with not output»:

/ Developer /Платформы / iPhoneSimulator.platform / Разработчик / usr / bin / gcc-4.2 -arch i386 -gdwarf-2 -fobjc-legacy-dispatch -fobjc-abi-version = 2 -miphoneos-version-min = 4.3 -isysroot / Developer / Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk /var/folders/-M/-Mb3Z8vAGIqK88qeV-fXk++++TI/-Tmp-/tmp216a96e0.tmp/main.x86.o -o / var /папки / -M / -Mb3Z8vAGIqK88qeV-fXk ++++ TI / -Tmp- / tmp216a96e0.tmp / ChicksnVixens -framework CFNetwork -Framework Foundation - фундаментная конструкция OpenGLES -framework UIKit -frameworkframeframeframeframeFrameCraftForeboxrk AudioToolbox -lz -u _mono_pmip -u _CreateZStream -u _CloseZStream -u _Flush -u _ReadZStream -u _WriteZStream -liconv -lmono-2.0 -lmonotouch -L / Разработчик / MonoTouch / SDKs / MonoTouch.ipkonesr_catch_exception_raise -L / Пользователи / ahmedhakeem / Документы / Проекты / goodjabberengine / MyCode / ChicksnVixens -lMylibrary -cxx -force_load /Users/ahmedhakeem/Documents/Projects/goodjabberengine/MyCode/ChicksnLogger 101/lix 1010lia 101/liЯ очень сильно подозреваю, что компилятор не может найти libLogger.a, потому что, если я изменил libLogger.a на что-то вроде abc.a (которого не существует), я получу ту же проблему.Я точно знаю, что libLogger.a существует в каталоге, указанном в каталоге MyCode / ChicksnVixens /, и он включен в исходную иерархию.

Есть идеи, как это исправить?Я подозреваю, что, может быть, это связано со мной, использующим xcode 4 для его компиляции?

Или проблема может заключаться в аргументах, которые я передаю:

-gcc_flags "-L${ProjectDir} -lMylibrary -cxx -force_load ${ProjectDir}/libLogger.a"

Мне пришлосьдобавить 'cxx' согласно инструкции, но, может быть, я что-то делаю не так, не видя этого?

1 Ответ

1 голос
/ 19 июля 2011

Я полагаю, это аргументы, которые вы передаете, возможно, попробуйте:

-gcc_flags "L${ProjectDir} -lLogger -cxx -force_load ${ProjectDir}/libLogger.a"

(при условии, что он все еще называется libLogger) - он пытается загрузить libMyLibrary, но вы указываетена libLogger.

...