gpt4 book ai didi

android - 使用预先构建的静态库android

转载 作者:太空宇宙 更新时间:2023-11-04 03:01:09 25 4
gpt4 key购买 nike

我正在为我的android项目使用freeimage.so,我如何从C代码中引用这个库?或者是否需要它来访问这个库中的函数?更多信息:我已将该功能放在项目的 armeabi 文件夹中请向我提供您宝贵的建议预先感谢您的宝贵努力

最佳答案

.so 是动态库(又名共享对象),而不是静态库。

要直接从 C 代码使用 .so 文件,您可以使用 dlfcn POSIX API。它就像 WinAPI 中的 LoadLibrary/GetProcAddress。

#include <dlfcn.h>

// sorry, I don't know the exact name of your FreeImage header file
#include "freeimage_header_file.h"

// declare the prototype
typedef FIBITMAP* ( DLL_CALLCONV* PFNFreeImage_LoadFromMemory )
( FREE_IMAGE_FORMAT, FIMEMORY*, int );

// declare the function pointer
PFNFreeImage_LoadFromMemory LoadFromMem_Function;

void some_function()
{
void* handle = dlopen("freeimage.so", RTLD_NOW);

LoadFromMem_Function =
( PFNFreeImage_LoadFromMemory )dlsym(handle, "FreeImage_LoadFromMemory" );

// use LoadFromMem_Function as you would use
// statically linked FreeImage_LoadFromMemory
}

如果您需要一个静态的,请获取 libfreeimage.a(或自己构建一个)并添加链接器指令 -lfreeimage

关于android - 使用预先构建的静态库android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11611890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com