cygwin安装G++编译器的问题!急求!!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cygwin安装G++编译器的问题!急求!!相关的知识,希望对你有一定的参考价值。

Cygwin上装了gcc-4.5.0,按照网上帖子上的方法make,make install.虽然过程很漫长,最后没等装完我就关了电脑——因为都快一天了。那个gcc-4.5.0.tar.gz有60多M。
现在想编C++,于是在gnu.org上下载了gcc-g++-4.5.1.tar.gz,奇怪的是只有八兆多(.bz2的是六兆多)。觉得应该g++调用的东西比gcc多啊。
然后我还是用tar -zxvf gcc-g++-4.5.1.tar.gz解压,之后因为什么./configure的不管用,直接make也是没反应,如图。
我看了下解压后的gcc-4.5.1里没有makefile……
求助啊,现在怎么办,怎么装G++啊?
我试了下用"g++"命令也可以编译程序不过出现错误。我怀疑是里面没有头文件什么的。
请装过G++的来指点一下吧!
为什么没人回答啊

参考技术A cygwin安装时可以从网站选择安装包,开发工具里面可以选择安装gcc和g++的,一般不用自己下载源码去安装。如果已经装了cygwin,也可以选择升级。
libstdc++是用来链接c++程序的库文件,本身不需要安装,在命令行敲g++,g++会调用gcc编译程序(所以它没有完整的编译器,比gcc的包小得多),但gcc命令不能自动和C++程序使用的库联接,所以通常用g++来完成链接。链接时使用命令g++和gcc -lstdc++其实是等价的。
参考技术B 为什么一定要用g++编译器呢
我一直都是Eclipse+cdt+MinGW
你说的那个编译器我以前也搞过,太麻烦了!
你不就是编译个c/c++吗
需要吧这搞的这么复杂吗,好吧
我希望你给分:本回答被提问者采纳

如何更改 Cygwin 中的 C++ 编译器?

【中文标题】如何更改 Cygwin 中的 C++ 编译器?【英文标题】:How to change the C++ compiler in Cygwin? 【发布时间】:2020-05-06 14:51:32 【问题描述】:

我用的是windows,需要编译一个cpp文件。我正在使用 Cygwin 运行命令sh。我已经安装了 MinGw。问题是当我运行命令时,我发现 Cygwin 正在调用 MinGw 的编译器。 这是我得到的错误的痕迹:

 $ sh build_cpp.sh
mkdir: cannot create directory ‘build’: File exists
-- The CXX compiler identification is GNU 7.2.0
-- Check for working CXX compiler: /cygdrive/c/MinGW-124/MinGW-CPTR-124/bin/g++.exe
-- Check for working CXX compiler: /cygdrive/c/MinGW-124/MinGW-CPTR-124/bin/g++.exe -- broken
CMake Error at /usr/share/cmake-3.14.5/Modules/CMakeTestCXXCompiler.cmake:53 (message):
  The C++ compiler

    "/cygdrive/c/MinGW-124/MinGW-CPTR-124/bin/g++.exe"

  is not able to compile a simple test program.

  It fails with the following output:

    Change Dir: /cygdrive/c/users/user/PycharmProjects/crnn-master/src/cpp/build/CMakeFiles/CMakeTmp

    Run Build Command(s):/usr/bin/make.exe cmTC_71c00/fast
    /usr/bin/make -f CMakeFiles/cmTC_71c00.dir/build.make CMakeFiles/cmTC_71c00.dir/build
    make[1]: Entering directory '/cygdrive/c/users/user/PycharmProjects/crnn-master/src/cpp/build/CMakeFiles/CMakeTmp'
    Building CXX object CMakeFiles/cmTC_71c00.dir/testCXXCompiler.cxx.o
    /cygdrive/c/MinGW-124/MinGW-CPTR-124/bin/g++.exe     -o CMakeFiles/cmTC_71c00.dir/testCXXCompiler.cxx.o -c /cygdrive/c/users/user/PycharmProjects/crnn-master/src/cpp/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx
    g++.exe: error: /cygdrive/c/users/user/PycharmProjects/crnn-master/src/cpp/build/CMakeFiles/CMakeTmp/testCXXCompiler.cxx: No such file or directory
    g++.exe: fatal error: no input files
    compilation terminated.
    make[1]: *** [CMakeFiles/cmTC_71c00.dir/build.make:66: CMakeFiles/cmTC_71c00.dir/testCXXCompiler.cxx.o] Error 1
    make[1]: Leaving directory '/cygdrive/c/users/user/PycharmProjects/crnn-master/src/cpp/build/CMakeFiles/CMakeTmp'
    make: *** [Makefile:121: cmTC_71c00/fast] Error 2




  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:3 (PROJECT)


-- Configuring incomplete, errors occurred!
See also "/cygdrive/c/users/user/PycharmProjects/crnn-master/src/cpp/build/CMakeFiles/CMakeOutput.log".
See also "/cygdrive/c/users/user/PycharmProjects/crnn-master/src/cpp/build/CMakeFiles/CMakeError.log".
make: *** No targets specified and no makefile found.  Stop.
cp: cannot stat '*.so': No such file or directory

我尝试使用命令cmake -d更改环境变量,安装开发包并更改缓存变量(CMAKE_CXX_COMPILER,CMAKE_CC_COMPILER)。 我在哪里可以更改 Cygwin 的编译器以便它使用它的编译器?

【问题讨论】:

在cygwin窗口中,输入where gcc,结果是什么? 你想使用不同版本的g++吗? 你想使用不同的编译器吗? Damien 结果是 C:\cygwin64\bin\gcc.exe 和 C:\MinGW-124\MinGW-CPTR-124\bin Thomas 我想用 Cygwin 的 gcc 【参考方案1】:

我可能是由于您的 Windows 路径变量。如果您有多个名为 g++ 的二进制文件,其中一个来自 mingw,则应将正确的一个添加到您的环境变量中并删除其他的。 还可以使用命令which g++ 来了解将使用哪个二进制文件。 您也可以提供正确编译器的完整路径作为解决方法。

【讨论】:

which g++ 返回 c\usr\bin 一个我找不到的目录。我尝试从路径变量中删除 MinGw 我收到此错误“通过将环境变量“CXX”或 CMake 缓存条目 CMAKE_CXX_COMPILER 设置为编译器的完整路径或编译器名称,告诉 CMake 在哪里可以找到编译器它在 PATH 中。”我尝试在变量路径中添加 CXX,但没有奏效。我找到的唯一解决方案是在我要编译的项目中更改文件 CMakeCache.txt 中这些变量的路径。我认为这不是一个长期的解决方案。 C\usr\bin 实际上可能是 CygWin 中的 linux 系统。您应该在 CygWin 安装文件夹中的某个位置找到它。不,这确实不是一个长期的解决方案。 实际上,当我阅读您对where gcc 的回答时,您的which g++ 结果实际上应该是CygWin 的gcc 而不是MingW gcc,这很奇怪。 我建议安装 Cygwin 的 mingw-w64 工具链并在开始构建之前从 PATH 中删除所有其他内容。或者,您可能会在 MSYS2 上取得更大的成功,但我仍然会推荐相同的步骤(使用 MSYS2 提供的 mingw-w64 工具链并清除 PATH)。

以上是关于cygwin安装G++编译器的问题!急求!!的主要内容,如果未能解决你的问题,请参考以下文章

cygwin 中如何安装arm-linux-gcc交叉编译器

Cygwin 的 Linux 交叉编译器 -- 无法在线找到 Linux Cygwin 编译器工具链

Boost 库未在 Netbeans 中使用 G++ 编译

将系统 C 安装到 Cygwin

C 编译器无法创建可执行文件 - Cygwin/MinGW

Cygwin工具编译Ardupilot方法