Xcode 如何使用init函数创建动态库

Xcode 如何使用init函数创建动态库,xcode,dylib,Xcode,Dylib,我试图在xcode中创建一个动态库。我可以通过在Xcode中选择c/c++库模板来创建dylb 我想为这个动态库添加“init”方法。我不知道如何为动态库添加“init”方法 我的想法是在dlopen()的帮助下在运行时调用这个“init” 谢谢您的宝贵反馈。 < P>如果您在C++中编码,您可以在 DLOpen< -e库中拥有静态对象;它们的构造函数在dlopen时间被调用(它们的析构函数在dlclose时间运行) 如果您的代码是由代码> GCC < /代码>编译的(无论是C语言还是C++语

我试图在xcode中创建一个动态库。我可以通过在Xcode中选择c/c++库模板来创建dylb

我想为这个动态库添加“init”方法。我不知道如何为动态库添加“init”方法

我的想法是在dlopen()的帮助下在运行时调用这个“init”


谢谢您的宝贵反馈。

< P>如果您在C++中编码,您可以在<代码> DLOpen< <代码> -e库中拥有静态对象;它们的构造函数在
dlopen
时间被调用(它们的析构函数在
dlclose
时间运行)

如果您的代码是由代码> GCC < /代码>编译的(无论是C语言还是C++语言,或者甚至其他语言),您可以使用<代码>构造函数< /C> >和<代码>析构函数< /C> > /P>

(可以使用过时的符号<代码>、 >代码>πFi,但是这是一个过时的特性:DLOPEN/COD>(至少在Linux上,可能在MaCOSX上)。然后你必须声明它们“代码>外部”C“无效”(空);在C++中>

<> >不要忘记<代码> dLySm < /Cuff>处理,所以您要声明<代码>外部“C”<代码>它的C++名称。 您还可以有自己的约定,动态加载的东西应该有一个名为
my_initialization
的函数,执行
dlopen
的代码稍后将使用
dlsym
来查找它。您应该有关于什么符号是dlsym以及如何使用它们的文档约定


我不太了解MacOSX,但我在谷歌上搜索了一下

谢谢Basile Starynkevitch。我已经创建了“init”方法。我可以用“dlsym”来调用它。你为什么称它为
init
方法?你为什么称它为
init
方法?这是一个函数!