如何从C程序的编译中生成共享库(.so
)文件。我想说,如果我编译一个C程序,我会得到<code>a.out</code>。相反,我可以得到.so文件。
要首先生成共享库,您必须通过指定-fPIC
标志来创建正常的二进制. o
文件以获得与位置无关的代码。这是必要的,因为库中的每次跳转或调用都将具有相对偏移量,并且当库加载到内存中以供进程使用时,可以重新定位(读取:优化较少,但可在任何地址使用)
然后,通过指定要从对象文件创建库,再次使用gcc
:
gcc -shared -o library_name.so a.o b.o
要生成共享库,首先需要使用-fPIC(位置无关代码)标志编译C代码。
gcc -c -fPIC file.c -o file.o
这将生成一个对象文件(.o),现在您需要它并创建.so文件:
gcc file.o -shared -o lib_file.so
我正在用android Studio构建一个android应用程序。 在这个过程中,我还实现了facebook login,这需要我将一个文件夹的代码放入我的项目中,以及其他编译时库。
通过前面章节的学习我们知道,GCC 编译器并未提供给用户可用鼠标点击的界面窗口,要想调用 GCC 编译器编译 C 或者 C++ 程序,只能通过执行相应的 gcc 或者 g++ 指令。本节将重点给大家讲解如何编写 gcc 或者 g++ 指令来编译 C、C++ 程序。 注意,在前面的讲解中我们一直提到“编译”C、C++ 程序,其本意指的是将 C、C++ 代码转变为可执行程序(等同于 Windows 系
这样多个页面就能共用我就能用1个css文件了
试图编译多文件包。需要通过进行编译,同时通过一个文件同时编译所有其他文件(大约4个其他.Java文件)?我已经尝试使用了extend和等语句。 我使用了不同的编译方法和参数,但尝试只插入和 摘要:试图一次编译多个Java文件,通过Java编译单个文件。 主文件的当前代码: