C ++链接问题与-fPIC?段故障

时间:2018-05-08 10:51:46

标签: c++ linker runtime-error linker-errors

我正在使用g ++

编译我的代码
g++ -g  -O3 -fPIC -shared -lstdc++ -std=c++0x  -I/home/nikesh.joshi/somepath/ main.cpp   /home/nikesh.joshi/ml/somepath_apis/somepath/somefile.o 

我已经使用ldconfig命令包含了lib。 我需要使用-fPIC,因为最终这个库将与其他静态库链接以形成动态库。 当我使用以下命令运行此代码时

./a.out

它提供"段错误"。

main.cpp的代码

#include<iostream>
using namespace std;
int main(){
        cout<<"Hello";
}

如果我使用g ++ main.cpp编译此代码,则代码运行成功。我需要用所有的lib编译这个代码,所以我可以使用这些库的函数。

我在这里发现了同样的问题:Why does including -fPIC to compile a static library cause a segmentation fault at run time?

但这并不能解决我的问题。

1 个答案:

答案 0 :(得分:0)

-shared生成一个可以与其他对象链接的共享对象。它不会创建可执行文件。您不能只执行共享对象。要么与其他内容链接以生成可执行文件,要么首先不创建动态库。