我在xcode中创建了一个非常简单的C ++库,基本上是:
//Numbers.h
class Numbers
{
public:
int Get10();
}
//Numbers.cpp
int Numbers::Get10()
{
return 10;
}
我把它编译成一个静态(调试)库,然后小心地跟着the instructions here直到第2步,我无法继续前进,因为代码将不再编译,这基本上是编译器在给出之前输出的我''mtouch失败,无输出'消息:
/Developer/Platforms/iPhoneSimulator.platform/Developer/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 / folders / -M / -Mb3Z8vAGIqK88qeV-fXk ++++ TI /-Tmp-/tmp216a96e0.tmp/ChicksnVixens -framework CFNetwork -framework Foundation -framework OpenGLES -framework UIKit -framework AudioToolbox -framework QuartzCore -framework CoreFoundation -framework CoreGraphics -framework AudioToolbox -lz -u _mono_pmip -u _CreateZStream -u _CloseZStream -u _Flush -u _ReadZStream -u _WriteZStream -liconv -lmono-2.0 -lmonotouch -L / Developer / MonoTouch / SDKs / MonoTouch.iphonesimulator.sdk / usr / lib -u _catch_exception_raise -L / Users / ahmedhakeem / Documents / Projects / goodjabberengine / MyCode / ChicksnVixens -lMylibrary -cxx -force_load /Users/ahmedhakeem/Documents/Projects/goodjabberengine/MyCode/ChicksnVixens/libLogger.a
我非常强烈怀疑编译器无法找到libLogger.a,因为如果我将libLogger.a更改为类似abc.a(不存在),我会遇到同样的问题。我确实知道libLogger.a存在于MyCode / ChicksnVixens /下的目录指定目录中,并且它包含在源层次结构中。
有关如何解决此问题的任何想法?我有点怀疑它可能与我使用xcode 4进行编译有关吗?
或问题可能是我传递的论据:
-gcc_flags "-L${ProjectDir} -lMylibrary -cxx -force_load ${ProjectDir}/libLogger.a"
我必须按照说明添加“cxx”但是如果没有看到它我可能做错了吗?
答案 0 :(得分:1)
我相信这是你传递的论据,也许可以尝试:
-gcc_flags "L${ProjectDir} -lLogger -cxx -force_load ${ProjectDir}/libLogger.a"
(假设它仍然被称为libLogger) - 它正在尝试加载libMyLibrary
,但您将其指向libLogger
。