c++ - 如何在 Cygwin 中禁用由 g++ 生成的扩展 .exe?

标签 c++ compilation g++ cygwin

在我的 windows 8.1 机器上,我尝试编译 kprogram

g++ -o helloworld helloworld.cpp

然后创建一个名为“helloworle.exe”的可执行文件。这与我在windows 7机器上的Cygwin不一致,编译后的可执行文件名为“helloworld”。如何消除 Cygwin g++ 生成的扩展?

我试图让它们保持一致,所以在 git 中不会有两个相同的文件。谢谢!

最佳答案

是的,这是可能的。这是一个 link我对 Cygwin GCC 的同样回答。它也适用于 g++。

通过告诉链接器如何命名其输出。

$ echo -e "#include <iostream>\nclass myClass { public: myClass() { 
  std::cout << \"Hello here is my class.\\\n\"; } };\nint main(int nbargs, char *args[]) {
  myClass *myInstance = new myClass();
  }" | g++ -pipe  -x c++ - -Wl,-oess2

这将生成一个 ess PE32/PE32+ 可执行文件,不是 ess.exe-pipe 选项指示 GCC 构建链不写入临时文件,而是在阶段之间使用管道。 -Wl,-o 选项禁止默认的 --force-exe-suffix

关于c++ - 如何在 Cygwin 中禁用由 g++ 生成的扩展 .exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23501683/

相关文章:

C++ const 对象的成员可以修改

gcc - 如何使用 GCC 生成 ELF 文件?

r - 在 Windows 上从源代码编译 RCurl

c++ - C++ 程序上的 iostream.h 问题

c++ - 如何检查模板类中的变量是否为字符串类型?

c++ - 在 Visual C++ 项目中链接 sqlite.lib

c++ - QObject 信号和槽不访问函数

c++ - "error: invalid function declaration"是什么意思?

c++ - G++冒泡排序

C++ 错误 C2040?