mec*_*ynx 3 c c++ windows compiler-construction cross-compiling
一些开源项目明确指出,为了在Windows上编译,它们需要一个微软编译器(通常也是特定版本,因为后一版本不兼容或将拒绝编译旧代码).
因为它似乎很荒谬,我认为,因为是可以为Windows编译源码编译器,微软编译器会为需要任何根本性的任务,我假定这是因为这些项目使用API调用来库(如MSVCRT*. dll)由于某种原因,mingw-gcc,clang和其他windows编译器端口无法编译.
我对这些要求的理解很浅,因为我对编译代码的经验主要来自linux,这让我很担心,因为获得微软编译器并非易事.获得它们的唯一方法是通过microsoft的visual c ++的快速版本,即便如此,最新的版本将完全拒绝安装在像我这样的旧winxp机器上,目前唯一可用的版本是vc ++ express2010,这需要注册从试用软件变成免费软件(即使那时我还不清楚它是否有用或者它需要什么 - 也许操作系统挂钩到"调试"和其他干扰?).
1)我的问题是,这些项目是否依赖于微软编译器,因为建立了这些仅限于微软的库(显然,化石编译器无法做到)?
如果原因是构建脚本或预处理器指令,那似乎是荒谬的,因为这些可以相对容易地移植.
2)此外,即使我避免使用任何msvcrt/.net /等,也有可能.调用,我仍然可以发现自己需要一个微软编译器来编译本机Windows软件(假设没有使用执行这些调用的库)?
3)我可以简单地使用clang和一些小部件库来制作本机Windows软件吗?
4)我可以修改项目的源代码,使其不依赖于微软编译器吗?
(好吧,这是4个问题,对不起,这对我来说很难清楚表达).
1)我的问题是,这些项目是否依赖于微软编译器,因为建立了这些仅限于微软的库(显然,化石编译器无法做到)?
编译器供应商和GUI框架供应商可以提供与MS DLL类似的DLL.一些MS DLL是系统 DLL,并由其他编译器和框架供应商使用.
如果您使用的是编译器或框架特定的DLL,则需要同时安装程序(项目).
2)此外,即使我避免使用任何msvcrt/.net /等,也有可能.调用,我仍然可以发现自己需要一个微软编译器来编译本机Windows软件(假设没有使用执行这些调用的库)?
不.如果您浏览StackOverflow上的帖子,有很多人直接使用Windows API,我猜你称之为原生 Windows软件.通常,这些API的代码位于系统API中.编译器将函数调用转换为对这些DLL的调用,并根据需要加载它们.
3)我可以简单地使用clang和一些小部件库来制作本机Windows软件吗?
不,你不能.这就是他们存在的原因.同样,许多人在没有MS编译器的情况下使用Qt和xWidgets等框架.我做了一段时间.我切换到Visual Studio,主要用于调试器.我不喜欢其他IDE如何尝试使用GDB.否则,我不会使用MS,因为它们倾向于使用Microsoft标准语言而不是ISO.
4)我可以修改项目的源代码,使其不依赖于微软编译器吗?
不,这就是为什么有免费软件和其他编译器的原因.
嗯,可以使用Java创建不使用MS编译器的GUI,但是他们使用Windows API.
尝试安装Cygwin.当您查看所有库时,您将意识到可以创建不使用MS编译器的项目.再次,通读StackOverflow帖子,你会发现人们正在使用其他编译器,如Intel,GNU,Clang,Greenhills等.一些嵌入式系统的编译器也将为Windows操作系统编译,因此您可以编写适用于两个平台的代码.
看起来你需要在网上搜索"GNU GUI tutorial C++"并查看弹出的内容.此外,为其他框架搜索"wxWidgets"和"Qt".