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);
}