当前位置:C++技术网 > 资讯 > VS2017编译Linux项目时添加不常用的命令选项方法

VS2017编译Linux项目时添加不常用的命令选项方法

更新时间:2017-11-15 09:58:33浏览次数:1+次

    用VS2017开发Linux项目,将项目编译为动态库时各种报错。其中一个错误如下:
1>/usr/bin/ld: /root/projects/t/obj/x64/Debug/Cgi.o: relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
1>/root/projects/t/obj/x64/Debug/Cgi.o: could not read symbols: Bad value
1>collect2: error: ld returned 1 exit status
1>/usr/bin/ld : error : relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
1>D:\t\t\t\obj\x64\Debug\Cgi.o : error : Bad value
1>collect2 : error : ld returned 1 exit status

    错误是什么,我们不用管。我们看清楚后面的一句话,即recompile with -fPIC。也就是说,VS2017提示我们使用-fPIC重新编译就可以了。所以看着这些错误很奇怪,但是已经有告诉我们解决的办法了。
    那么现在的问题是,如何在VS2017里添加这个-fPIC呢?
    在项目属性里找了半天没有找到,然后最后出动终极杀手锏,直接在命令行选项里添加。
    提示的是重编译加入-fPIC,所以我们要在编译器的命令行加入此命令。如下图所示:
    VS2017编译Linux项目时添加不常用的命令选项方法
    同理,如果需要在链接时加入一个选项,而VS2017没有相关的设置,我们就在链接器的命令行里手动加入一个即可。

        平时我们很少在命令行里加入选项,所以大家对这个命令行添加不熟悉,可能不知道在哪里添加,所以分享一下。

        这里只是举例添加了-fPIC选项,以后遇到更多的命令选项,你知道怎么做了吧。