You are on page 1of 1

当供应商或者客户不便将算法给我们 share 时,会以动态链接库以及头文件的方式给我们;需要注意以下几点:

1、不论我们的平台是什么版本,多少 bit,至少目前为止,UNISON 编译的时候,都是将 C++文件以及.so 文件编译位


32bit 的文件,所以客户提供给我们的文件必须是 32bit 的;

红色方框内可以看到,UNISON 编译时,就是默认为 32bit;

2、供应商提供给我们的有可能是 C++编译而来的动态链接库,也有可能是 C 编译而来;有一种说法,如果是 C 编译而


来,那么需要在头文件里面加上 extern " C ";但我尝试过,好像不存在这样的问题;(此处存疑)

3、动态链接库里包含的函数在头文件可以查看到,如果想要在 Unison 的 CPP 里面调用,在我们的.CPP 里面#include


头文件,就可以调用动态链接库里面的函数了;当然还可以不#include 头文件,而是在 Unison 的 CPP 里使用

extern "C"
{
int function_a();
int function_b()'
.....
}
推荐第一种方法;

4、编译 C 的命令:gcc -m32 -Werror -O3 Test.c -shared -o Test_Compiler.so


编译 C++的命令:gcc -m32 -Werror -O3 -shared -fPIC -o Test_Compiler.so Test.cpp
其中 -m32 很重要,表示将动态链接库编译为 32bit 的文件;其他命令参数可以自己尝试取舍;

5、其他按照 bradley_hsu 提供的文档操作即可;

You might also like