Cross-platform Tools

  MinGW和Cygwin都解决了C++跨平台交叉编译的问题,使Linux下的程序在Windows上编译运行成为可能。

  MinGW给习惯在Linux上开发的人员在windows上提供了一套类似的工具集;Cygwin主要是对于在Linux的程序,无需改动代码即可移植到windows上;gnuwin32主要是对习惯linux工具的人员,在windows上提供一套类似的命令

  Unix下编译通过的C代码,在win32下编译是不能通过的 ,当然Unix和win32的API都符合标准C,即大多数函数调用在unix和win32下是相同的.但unix有自己一些独特的API(如fork,spawn,signals,select,sockets等),如果代码中使用了这些API,在win32下当然找不到对应的库。但这些API的功能在win32中也能实现,下面提供两种让window编译Unix风格代码的方法:

  • 修改编译器,让window下的编译器把诸如fork的调用翻译成等价的形式,这就是MinGW的做法
  • 修改库,让window提供一个类似unix提供的库,它们对程序的接口如同unix一样,而这些库是由win32的API实现的,这就是Cygwin的做法

MinGW

  MinGW, a contraction of "Minimalist GNU for Windows", is a minimalist development environment for native Microsoft Windows applications.

  MinGW provides a complete Open Source programming tool set which is suitable for the development of native MS-Windows applications, and which do not depend on any 3rd-party C-Runtime DLLs.

  MinGW给在习惯在Linux开发的人员提供了一套在Windows上开发类似Linux的工具集,它包括一系列软件:编译工具、链接工具、转储工具、调试工具和其它开发工具等。MinGW还提供一些开源的基础支持库,像GNU的C/C++ RT库(libc、libstdc++),POSIX的基本调用界面(包括pthread),甚至还有OpenGL和Windows API的调用接口等。几乎所有MinGW中的软件都是从GNU项目或Linux下移植到Windows下的。

  与GNU不同的是,MinGW编译生成的是Windows下的可执行文件(.exe)或库文件(.dll,.lib),不过编译过程中的的中间文件仍然是.o文件,而不是.obj文件。

  MinGW的POSIX界面远没有Cygwin实现的那么全面(如:连BSD/Linux Socket都没有,只能用Winsock),所以MinGW只是用来开发Windows专属应用的工具集

  后来MinGW有了一个子项目叫:MSYS,其中包括了更多的Linux工具,其目标类似Cygwin:构建一套Windows下的Linux模拟环境。

  MSYS, a contraction of "Minimal SYStem", is a Bourne Shell command line interpreter system. Offered as an alternative to Microsoft's cmd.exe, this provides a general purpose command line environment, which is particularly suited to use with MinGW, for porting of many Open Source applications to the MS-Windows platform; a light-weight fork of Cygwin-1.3, it includes a small selection of Unix tools, chosen to facilitate that objective.

  注:MinGW官网:http://www.mingw.org/

Cygwin

  Cygwin is:

  • a large collection of GNU and Open Source tools which provide functionality similar to a Linux distributionon Windows.
  • a DLL (cygwin1.dll) which provides substantial POSIX API functionality.

  Cygwin 名字来源于GNU、Cygnus、Windows三者的缩写。Cygwin的目标是:构建一套Windows下的Linux模拟环境。因此,Cygwin是一个庞大的项目,不只包括Linux下的开发环境,也包括工作环境和各种各样的Linux下的软件。

  在早期,Cygwin的核心是cygwin1.dll,可以认为它是一个POSIX界面的实现,依靠这个动态链接库,Unix/Linux下的软件可以很容易的移植到Windows下,并且风格保持原有的不变。不过,随着Cygwin的发展,越来越多的Unix/Linux程序的移植,建立基于Cygwin的复杂程序依赖的库也越来越多,现在装完默认配置的Cygwin后,就会发现有很多cyg打头的动态链接库。

注:

  Cygwin官网:http://www.cygwin.com/

  Cygwin中文网:http://www.cygwin.cn/

GnuWin32

  GnuWin32使windows用户可以在命令行窗口中使用各种各样的linux命令,就跟使用普通的windows命令一样简单。

  注:GnuWin32官网:http://gnuwin32.sourceforge.net/

CMake

  CMake is an open-source, cross-platform family of tools designed to build, test and package software.

  官网:https://cmake.org/

转载于:https://www.cnblogs.com/gaohongchen01/p/4192821.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Command line: -prefix /home/liuyh/workspace/qt5.14.2-arm -opensource -confirm-license -release -strip -shared -xplatform linux-arm-gnueabi-g++ -optimized-qmake -c++std c++11 --rpath=no -pch -skip qt3d -skip qtactiveqt -skip qtandroidextras -skip qtcanvas3d -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtmacextras -skip qtnetworkauth -skip qtpurchasing -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtspeech -skip qtsvg -skip qttools -skip qttranslations -skip qtwayland -skip qtwebengine -skip qtwebview -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -make libs -make examples -nomake tools -nomake tests -gui -widgets -dbus-runtime --glib=no --iconv=no --pcre=qt --zlib=qt -no-openssl --freetype=qt --harfbuzz=qt -no-opengl -linuxfb --xcb=no -tslib --libpng=qt --libjpeg=qt --sqlite=qt -plugin-sql-sqlite -I/opt/tslib/include -L/opt/tslib/lib -recheck-all executing config test machineTuple + arm-linux-gnueabi-g++ -dumpmachine > sh: 1: arm-linux-gnueabi-g++: not found test config.qtbase.tests.machineTuple FAILED executing config test verifyspec + cd /home/liuyh/workspace/QT5.14.2/qt-everywhere-src-5.14.2/config.tests/verifyspec && /home/liuyh/workspace/QT5.14.2/qt-everywhere-src-5.14.2/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'QMAKE_LIBDIR += /opt/tslib/lib' 'INCLUDEPATH += /opt/tslib/include' -early "CONFIG += cross_compile" /home/liuyh/workspace/QT5.14.2/qt-everywhere-src-5.14.2/qtbase/config.tests/verifyspec + cd /home/liuyh/workspace/QT5.14.2/qt-everywhere-src-5.14.2/config.tests/verifyspec && MAKEFLAGS= /usr/bin/make clean && MAKEFLAGS= /usr/bin/make > rm -f verifyspec.o > rm -f *~ core *.core > arm-linux-gnueabi-g++ -c -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard -O2 -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard -pipe -O2 -w -fPIC -I/home/liuyh/workspace/QT5.14.2/qt-everywhere-src-5.14.2/qtbase/config.tests/verifyspec -I. -I/opt/tslib/include -I/home/liuyh/workspace/QT5.14.2/qt-everywhere-src-5.14.2/qtbase/mkspecs/linux-arm-gnueabi-g++ -o verifyspec.o /home/liuyh/workspace/QT5.14.2/qt-everywhere-src-5.14.2/qtbase/config.tests/verifyspec/verifyspec.cpp > make:arm-linux-gnueabi-g++:命令未找到 > make: *** [Makefile:172:verifyspec.o] 错误 127
06-09

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值