如何告诉Libtool使用C++而不是C

How to tell Libtool to use C++ and not C?

本文关键字:C++ 何告诉 Libtool 使用      更新时间:2023-10-16

我正在为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>.cppCXXFLAGS而不是lt-<some file>.cCFLAGS,但我不知道如何做到。

我们如何告诉Libtool使用C++而不是C?


一个相关的问题是如何在C++Autotools项目中禁用C编译器,但它只要求使用C++编译器进行功能测试。

您可以在编译前将您提到的C编译器选项添加到CFLAGS env var中。你认为这不起作用的原因是什么吗?