环境:Ubuntu 16.04
在我的实验中,我运行了以下命令:
gcc -c 1.c
gcc -c -fPIC 2.c
gcc -shared 1.o 2.o -o libmyxxx.so
我需要公开的函数都是在 2.c 中通过extern "C"
声明定义的。这些函数在内部调用 1.c 中定义的其他函数。
请注意,我没有申请-fPIC
1.c。仍然一切似乎编译/链接正常,没有任何警告。
我们是否可以得出结论,-fPIC
必须只应用于那些公开外部函数的源文件?
在更大的图片中,我有一堆可能没有使用-fPIC
标志编译的存档 (.a) 文件。我需要创建一个与这些存档文件链接的自定义共享库。如果我的假设是有效的,我认为可以链接到这些存档文件。欣赏你的想法。问候。