用于 g++ 编译的 C++ 文件的用户定义扩展

User defined Extension of C++ file for g++ compilation

出于某种原因,我想使用扩展 .cxy 作为 c++ 源代码使用。例如,文件名为 abc.cxy。但是,我的 g++(4.9.2 版本)无法编译。 我编译为:

g++ -o abc.oxy abc.cxy

它正在抱怨:g++: warning: conn.cxy: linker input file unused because linking not done 而且,目标文件 abc.oxy 没有被创建。 然而,如果我将扩展名设为 .cxx,并编译为:

g++ -o abc.oxy abc.cxx

正在 abc.oxy 我不能使用 .c, .cpp, .cxx 以外的扩展名吗?

尝试g++ -o abc.oxy -x c++ abc.cxy

g++ 无法从您的自定义后缀中推断出正确的语言,并且它无法推断为源的任何内容都会作为目标文件直接传递给链接器。

Am I not allowed to use extension other than .c, .cpp, .cxx?

如果您希望 GCC 自动推断源语言,则不可以。约定已到位,因此我们不必明确说明,但您仍然可以使用 -x 选项。