我刚刚开始创建自己的 C 库,以保持常用函数的整洁。但是,我遇到了一个新问题,我很难找到有关最佳路线的信息。
我使用以下方法生成包含两个函数的库:
gcc -I. -c -fpic rand_site.c
gcc -I. -c -fpic rand_spin.c
gcc -shared -o libstatphys.so rand_site.o rand_spin.o
这些源文件中的每一个都包含一个函数。我希望为我的库创建第三个使用上述两个函数的函数,但我不确定如何使用同一个库中的函数。
我的做法是否正确?这样做的最佳做法是什么?
最佳答案
是的,你可以。
创建一个头文件rand_site.h
,将rand_site.c
中定义的函数的声明放在里面。
创建一个头文件rand_spin.h
,将rand_spin.c
中定义的函数的声明放入其中。
使用#include
将两个.h
文件包含在第三个文件中,比如foo.c
。
然后编译foo.c
并使用以下命令将其添加到库中:
gcc -I. -c -fpic foo.c gcc -shared -o libstatphys.so rand_site.o rand_spin.o foo.o
如果您想创建第二个具有 foo.o
的共享库,您可以使用:
gcc -I. -c -fpic foo.c gcc -shared -o libfoo.so foo.o -lstatphys
如果您想使用foo.o
创建一个可执行文件,您可以使用:
gcc -I. -c foo.c gcc foo.o -lstatphys
关于自定义 C 库 : can functions in the same library refer to each other?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23022491/