GCC编译器错误:无法识别的选项' - export-dynamic'

时间:2014-04-21 15:48:50

标签: c++ c linux gcc

上下文如下:我正在尝试从Linux Mint中的源代码编译InkscapeLite。在编译结束时,最后一个命令是(某些.o和.a文件被替换为“...”,因为命令很长):

gcc -g -O2 -o inkscape --export-dynamic inkscape.o inkscape-stock.o ... ./.libs/libinkscape.al dialogs/libspdialogs.a ... -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 /usr/lib/i386-linux-gnu/libcairo.so -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 /usr/lib/i386-linux-gnu/libart_lgpl_2.so /usr/lib/i386-linux-gnu/libxml2.so /usr/lib/i386-linux-gnu/libpopt.so -lpng -lXft -L/usr/lib/i386-linux-gnu /usr/lib/i386-linux-gnu/libfreetype.so -lz -Wl,--rpath -Wl,/usr/lib/i386-linux-gnu -Wl,--rpath -Wl,/usr/lib/i386-linux-gnu

失败并显示错误:gcc: error: unrecognized option '--export-dynamic'

我所做的是将--export-dynamic替换为-export-dynamic,仅用于测试(注意,我不是C / C ++程序员,对GCC或任何其他C编译器一无所知)并执行命令在控制台中手动。编译结束没有错误,程序工作,但它几乎没有错过所有工具栏和菜单图标(只有一些常见的图标作为打开/保存/复制/粘贴...)

是否因为此问题选项--export-dynamic或源中存在一些不同的问题?

BTW,相同的程序在Puppy Linux发行版中正常工作。

2 个答案:

答案 0 :(得分:3)

似乎构建脚本问题。 --export-dynamic链接器(Unix中的ld)选项,在您的情况下可能很有用,但它不是gcc前端选项。我看到的所有GCC版本都有-rdynamic标志,这会导致--export-dynamic传递给链接器。因此,您可以使用自己的方法解决此问题(例如,只需尝试重命名makefile / etc中的选项)和/或将问题报告给维护者。

答案 1 :(得分:3)

使用gcc -rdynamic-Wl,--export-dynamic-Wl告诉将下一个子选项发送到ld ...)