繁体   English   中英

尝试将 static C++ 库链接到 MonoDevelop 时出现编译器错误

[英]Compiler error when attempting to link static C++ library to MonoDevelop

我在 xcode 中创建了一个非常简单的 C++ 库,它基本上是:

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

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

我将它编译为 static(调试)库,然后仔细按照此处的说明进行操作,直到第 2 步,我无法进一步进行,因为代码将不再编译,这基本上是编译器在给我“mtouch failed”之前输出的内容没有输出'消息:

/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.Z8A9DA7865483C56FDZ317. /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/ChicksnV ixens -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 编译它有关?

或者问题可能是我传入的 arguments:

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

我必须按照说明添加“cxx”,但也许我在没有看到的情况下做错了什么?

我相信这是您传入的 arguments,也许可以尝试:

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

(假设它仍然被称为 libLogger) - 它正在尝试加载libMyLibrary但您将其指向libLogger

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM