在linux中,采用codeblocks创建.so库和.a库的方法是怎样的啊? 直接创建 shared library 为什么只生成一个main.c文件,连个头文件都没有,虽然编译能够生成.so库文件,可以交给别人用的时候怎么知道库中封装了什么函数。
我自己加了个头文件,然后把头文件及so库文件拷到测试程序中,然后 选择 project -> build options->linker settings,添加库文件,然后把头文件添加到测试工程中,为什么报错,说undefined reference to `SampleAddInt(int, int)'|这是为什么,so库的操作方法与windows下的dll库有什么区别。
库的头文件[code]#ifndef STATICLIB_H
#define STATICLIB_H
int SampleAddInt(int i1, int i2);
void SampleFunction1();
int SampleFunction2();
#endif // STATICLIB_H[/code]库的执行文件[code]int SampleAddInt(int i1, int i2)
{
return i1 + i2;
}
// A function doing nothing ;)
void SampleFunction1()
{
// insert code here
}
// A function always returning zero
int SampleFunction2()
{
// insert code here
return 0;
}[/code]编译后生成 libshared.so,拷贝头文件和libshared.so到测试程序,编译出错