当前位置: 代码迷 >> 驱动开发 >> Linux嵌入式程序会生成一个不需要带头文件,只需交付so文件的动态链接库吗
  详细解决方案

Linux嵌入式程序会生成一个不需要带头文件,只需交付so文件的动态链接库吗

热度:78   发布时间:2016-04-28 10:53:08.0
Linux嵌入式程序能生成一个不需要带头文件,只需交付so文件的动态链接库吗?

嵌入式程序调用这个动态库就像Windows下LoadLibrary(“。。。dll”)一样,而不用带它的头文件。
这个动态链接库是做一些基本的运算,不包含任何设备相关的东西

------解决方案--------------------
可以。
#include <stdio.h>
#ifdef __cplusplus
extern "C"
{
#endif
  
void foo ( void )
{
printf("test");
}
  
#ifdef __cplusplus
}
#endif

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <dlfcn.h>
typedef void (*foo)(void);

int main(int argc, char * argv[]) 
{
void *handle;
char* pszerror;
handle = dlopen("../NoHeaderSO/Debug/libNoHeaderSO.so", RTLD_LAZY);
pszerror = dlerror();
if (0 != pszerror) 
{
printf("%s", pszerror);
return 1;
}
foo func = (foo) dlsym(handle, "foo");
pszerror = dlerror();
if (0 != pszerror) 
{
printf("%s", pszerror);
return 1;
}
func();
dlclose(handle);
return (EXIT_SUCCESS);
}