使用 autotools 和附加编译器标志编译库

Compile library with autotools and an additional compiler flag

我正在建设图书馆 gdal-1.9.2。启动 ./configure 命令后,make 失败并显示错误

ISO C++ forbids comparison between pointer and integer [-fpermissive]

如果我在控制台中使用附加选项 -fpermissive 启动最后一个失败的命令,它会成功完成(有警告,而不是错误)。

g++ -g -O2 -Wall -DOGR_ENABLED -I/home/unona/unona-pult/gdal-1.9.2/port -DHAVE_LIBZ -fpermissive -c cplkeywordparser.cpp  -fPIC -DPIC -o .libs/cplkeywordparser.o

现在如何完成构建过程?只是 make 重建它并以同样的方式崩溃。

对于 autotools 构建,您可以期望 ./configure 脚本检查通过环境变量设置的编译器标志(通常也支持命令行选项,但恕我直言,它们不太容易记住)。这些变量的名称是标准名称,在您的情况下,它应该是

CXXFLAGS="-fpermissive" ./configure

make install

配置脚本生成 makefile,以便在构建时将 CXXFLAGS 的值传递给编译器。