如何在Mac OSX 中制作dylib和使用dylib
本文本着简单易读的方式给朋友们,本人为原创
1.首先是构建一个函数库
编辑add.c
int add(int a,int b)
{
return a+b;
}
int axb(int a,int b)
{
return a*b;
}
保存
其中两个函数 add axb
这是简单的写的,复杂的自己开发,这里主要介绍方法
2.编译函数库
gcc -c add.c -o add.o
//下面是linux系统时
ar rcs libadd.a add.o
//如果你是linux 就用这种库
//下面是Mac OSX
gcc add.o -dynamiclib -current_version 1.0 -o libadd.dylib
得到 libadd.dylib
3.编辑testadd.c
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
int main(int argc,char *argv[])
{
int a,b;
a=10;
b=9;
int c;
c=add(a,b);
printf("%d\n",c);
return 1;
}
保存
4.编译testadd.c
gcc testadd.c -o testadd -L. -ladd
./testadd
输出19
5.编辑dladd.c
#include <stdio.h>
#include <stdlib.h>
#include <dlfcn.h>
int main(int argc,char *argv[])
{
int *ab;
void *h=dlopen("./libadd.dylib",RTLD_LAZY);
ab=dlsym(h,"add");
printf("add=address is 0x %x\n",ab);
dlclose(h);
return 1;
}
这个是为了查看函数库在库中的地址的
6.编译dladd.c
gcc dladd.c -o dladd -ldl
./dladd
add=address is 0x 23fe2
这是输出的地址了
分享到:
相关推荐
环境: Java 用法: static{ System.load(System.getProperty("user.dir")+"/src/main/resources/opencv_java342.dylib"); }
将整个框架(或仅动态库二进制文件即可)和所有依赖的dylib复制到一个文件夹中(将其称为DYLIBS)。 您可能需要其他XCode股票swift dylib,可以在/Applications/Xcode.app/Contents/Developer/Toolchains/...
Mac dylib捆绑器关于Mac OS X引入了一种创新且非常有用的打包应用程序的...它会自动确定您的程序需要哪些dylib,将这些库复制到应用程序捆绑包中,并修复它们和可执行文件以准备分发……在终端上用单个命令即可完成所
最新版的 subversion-1.9.7-osx-binary.tar.gz 压缩包
该脚本将已签名的应用程序打包到包含带有libswiftCore * .dylib的SwiftSupport文件夹的IPA中。 要将Swift制作的应用程序部署到AppStore中,这是必需的 #用法 ###运行脚本:sh package_ipa.sh / path / to / signed ...
Mac CPP Excel加载项示例Mac OSX Excel插件由三个组件组成,该插件,一个主程序和一个使用该插件的excel电子表格。 此仓库中有几个CDT项目ExampleAddin C ++-使用CDT和clang来构建dylib ExampleAddinMain c ++-使用...
此iOS,OSX和Windows兼容的GlassLab SDK允许游戏和其他应用程序连接到GlassLab游戏服务(GLGS)平台并执行某些操作。 将该库集成到您的项目中的主要目的是跟踪游戏会话并为这些会话存储遥测。 该软件包包括适用于...
在OSX中,为了编译dylib: 安装XCode 打开项目文件RFFEAnalyzer.xcodeproj 建造 在“ DerivedData”下找到输出目录,以将其包含在Saleae->选项->首选项->开发人员选项卡中 OSX构建详细信息 在OSX Yosemite上使用...
标准缓冲区用于 Mac OS X 的 ,从复制。... 如果 libstdbuf.dylib 将安装在 OS X 中 /usr/local/lib 以外的其他地方,请通过为 cpp 定义 PREFIX 来指定 PREFIX。 例如,使用: make CPPFLAGS='-DPREFIX=\"/Users/tcreec
在Mac OS X上安装zathura和插件的自制程序公式 安装 点击存储库: brew tap zegervdv/zathura 安装前 安装zathura和所需的插件 brew install zathura brew install zathura-pdf-poppler 按照说明将插件链接到位: ...
NukeOSX-ExamplePlugin 这是一个非常简单的... 自定义构建脚本还会将 dylib 复制到您的默认 .nuke 文件夹中,以便于更新和测试插件更改。 这是在没有任何许可的情况下发布的,所以请随意克隆并用它做任何你想做的事!
macOS 升级到最新版本之后因架构问题导致了无法安装 IDA Pro 7.0,升级之前安装好的,...$./installbuilder.sh./installbuilder.sh: line 18: ./osx-intel: Bad CPU type in executable$./osx-intelzsh: bad CPU type i
要在您的项目中使用 ofxQRCodeGenerator,您必须在项目的链接库中包含 libqrencode,并在链接后添加以下脚本: cp -f ../../../addons/ofxQRCodeGenerator/lib/osx/libqrencode.3.dylib "$TARGET_BUILD_DIR/$...
这是在openframeworks(oF)上使用深度相机D415和D435的最小示例。 这基于英特尔:registered:实感:trade_mark:SDK 2.0。截屏要求OSX Xcode(在Windows或Linux上不支持) 在oF v0.10.0上测试英特尔实感D415或D435...
Search in your plugin installation folder for ai.dll on Windows libai.so on Linux, and libai.dylib on OSX and copy the "solidangle_client.lic" file there (change port and server if necessary)
这是libusb的JNI包装器的源代码。 usb4java已经包括用于以下平台...编译成功后,您可以在build/src目录中找到该库。 usb4java在CLASSPATH目录org/libusb4java/<OS>-<ARCH>/搜索该库。 例如,在32位x86 linux计算机上,
-release./osx_vst_bundler.sh PlexLooper target/release/libplexlooper.dylib特征记录循环配音(带反馈) 沉默的停止替换(用新材料替换循环的一部分) 插入(用新材料扩展循环) 同步到细分(替换和插入将在循环...
建造: $ make+ cc foo.o+ ld libfoo.dylib+ cc fakefoo.o+ ld libfakefoo.dylib+ cc main健全的系统(Ubuntu 14.04): Doing dlopen on the real libfoo. Any sane system will report so:=== Invoking the real ...
使用者介面 该软件包包装了 C库。 它还为其提供了高级Nim绑定。 首先,使用Nimble安装: ... 然后,您需要将应用程序分别与Windows,macOS和Linux的libui.dll,libui.dylib或libui.so捆绑在一起。
目前只有 OSX 和 Linux。 提供了一些适用于 Windows 的存根,请随意 fork 并完成这些。 用 您需要将 Leap_SDK 文件夹中的几个文件复制到您的系统中。 Mac OS X 将include/Leap.h复制到/usr/local/include/然后将lib...