在我的 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/