我想在iOS应用程序(Xcode项目)中使用现有的Pascal源代码(无用户界面)。所以我需要创建一个静态库,然后我可以将其添加到我的iOS项目中。
有没有办法在Delphi中为arm架构创建静态库(* .a)?是否有编译器/链接器选项?
或许还有另一种方法可以做到这一点?
修改
我创建了一个osx测试项目并使用了Dcp \ OSX32路径中的库文件并手动创建了头文件。
当我构建Xcode项目时,我收到以下错误:
lipo说:ld:警告:忽略文件/Path/lib/testlib.a,为其构建了文件 存档不是要链接的体系结构(x86_64): /Path/lib/testlib.a
lipo -info /Path/lib/testlib.a fatal error:
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo:
> archive with no architecture specification: /Path/lib/testlib.a (can't
> determine architecture for it)
AR:
ar -t /Path/lib/testlib.a
/
//
/1
/Path/lib/testlib.a文件是使用Delphi Package Project生成的。该文件似乎在Xcode项目中无法使用。
答案 0 :(得分:2)
documentation说这是可能的(我强调)。
RAD Studio生成包静态库文件:
- 为iOS设备或Android构建Delphi软件包时。
- 为桌面平台构建Delphi软件包并使用"生成所有C ++ Builder文件(包括软件包库)"的价值 Project>中的C / C ++输出文件生成选项选项>德尔福 编译器>输出 - C / C ++。
- 构建C ++程序包并在Project>中启用Generate static package library(.lib)选项时选项> C ++ Linker。
包静态库文件是从中生成的静态库文件 一套。在何时使用静态库代替导入库 您的应用程序不使用运行时包。请参阅构建静态 包。
包静态库文件的文件名是:
<package>.lib
用于32位Windows。<package>.a
适用于64位Windows和Mac OS X.lib<package>.a
适用于iOS设备和Android。