如何告诉Libtool使用C++而不是C
How to tell Libtool to use C++ and not C?
我正在为C++库开发Autools前端。看起来Libtool正在向项目中添加C源文件,这在一些平台上造成了相当大的麻烦。我们认为它会导致无法解释的崩溃,比如来自GDB的消息"在启动过程中,程序被信号SIGKILL终止"。
C源文件引起问题的原因有几个。首先,我们只查询CXXFLAGS
并设置AM_CXXFLAGS
;并且我们对CCD_ 3或CCD_。其次,C文件在C++项目中需要额外的选项,如GCC下的-frtti
和-fexceptions
,以及IBMXLC/C++编译器下的-qrtti
。我不清楚libtool是否添加了必要的选项。第三,Libtool添加的C源文件在使用Newlib的平台上需要额外的Posix选项,如Cygwin和MSYS。我们的源文件不需要这些选项。
我想强制Libtool使用C++而不是C,但我找不到这样做的选项或方法。我认为最简单的方法是让Libtool用lt-<some file>.cpp
和CXXFLAGS
而不是lt-<some file>.c
和CFLAGS
,但我不知道如何做到。
我们如何告诉Libtool使用C++而不是C?
一个相关的问题是如何在C++Autotools项目中禁用C编译器,但它只要求使用C++编译器进行功能测试。
您可以在编译前将您提到的C编译器选项添加到CFLAGS env var中。你认为这不起作用的原因是什么吗?