不小心,我用--shared标志与hello world c ++程序链接并获得了一个exe文件.但是当我运行它时输出是段错误的.有人能告诉我背后的原因吗?
重现方式:
eclipse c ++中的标准c ++ hello world问题.检查设置 - >共享库设置中的共享标志框.
构建输出:
make all building file:../ app.cpp Invoking:GCC C++ Compiler g ++ -O0 -g3 -Wall -c -fmessage-length = 0 -fPIC -MMD -MP -MF"app.d"-MT"app.d "-o"app.o""../app.cpp"完成建筑:../ app.cpp
构建目标:应用程序调用:GCC C++链接器g ++ -shared -o"app"./app.o
完成的构建目标:app
执行输出:分段错误
谢谢
小智 5
从g ++手册:--shared生成一个共享对象,然后可以与其他对象链接以形成可执行文件.并非所有系统都支持此选项.对于可预测的结果,还必须指定在指定此选项时用于生成代码(-fpic,-fPIC或模型子选项)的同一组选项.[1]
当您放置--shared选项时,这意味着您不需要可执行文件,而是需要共享对象.
在您的情况下,您创建共享库而不是可执行文件.这就是您在启动时出现段错误的原因.
归档时间: |
|
查看次数: |
1533 次 |
最近记录: |