我需要在本机代码中创建一些从我的MonoTouch应用程序调用的函数。我已经尝试了很多变化来实现这一点,但我总是得到,“错误:我应该只提供一个根组件”,当我尝试构建时。
以下是我尝试此操作的步骤:
创建一个简单的MyFile.cpp文件:
extern "C"
{
int TestAdd( int a, int b );
}
int TestAdd( int a, int b )
{
return a+b;
}
将其构建为.a文件:
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 -arch armv6 -c MyFile.cpp
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/libtool -static -arch_only armv6 MyFile.o -o libtest.a
将libtest.a复制到我的MonoTouch项目文件夹中并将其添加到项目中。
在项目选项 - > iPhone Build下,将额外参数设置为“-ltest”。
..我不断收到“错误:你应该只提供一个根组件”。我甚至没有使用DllImport(“__ Internal”))属性或尝试在我的代码中调用TestAdd。
我在这里做错了什么?
答案 0 :(得分:6)
你的额外论据是错误的,它们应该是这样的:
-gcc_flags“-L $ {ProjectDir} -ltest -force_load $ {ProjectDir} /libtest.a”
答案 1 :(得分:0)
在我的情况下,我更改了包含.sln文件的基本文件夹的名称,因此我收到此错误。我将根文件夹更改回早期版本,错误得到修复。