c – 在Windows上编译是否必须是MSVC?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c – 在Windows上编译是否必须是MSVC?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2787字,纯文字阅读大概需要4分钟。
内容图文
一些开源项目明确指出,为了在Windows上编译,它们需要一个微软编译器(通常也是特定版本,因为后一版本不兼容或将拒绝编译旧代码).
因为对我来说似乎很荒谬,因为有可以为windows编译的化石编译器,微软编译器对于任何基本任务都是必要的,我假设这是因为那些项目使用api调用库(例如msvcrt *. dll)由于某种原因,mingw-gcc,clang和其他windows编译器端口无法编译.
我对这些要求的理解很浅,因为我对编译代码的经验主要来自linux,这让我很担心,因为获得微软编译器并非易事.获得它们的唯一方法是通过微软的visual c的快速版本,即使这样,最新版本将完全拒绝安装在像我这样的旧winxp机器上,目前唯一可用的版本是vc express2010,这需要注册从试用软件变成免费软件(即便如此,我还不清楚它是否有用或者它需要什么 – 也许操作系统挂钩到“调试”和其他干扰?).
1)我的问题是,这些项目是否依赖于微软编译器,因为建立了这些仅限于微软的库(显然,化石编译器无法做到)?
如果原因是构建脚本或预处理器指令,那似乎是荒谬的,因为这些可以相对容易地移植.
2)此外,即使我避免使用任何msvcrt / .net /等,也有可能.调用,我仍然可以发现自己需要一个微软编译器来编译本机Windows软件(假设没有使用执行这些调用的库)?
3)我可以简单地使用clang和一些小部件库来制作本机Windows软件吗?
4)我可以修改项目的源代码,使其不依赖于微软编译器吗?
(好吧,这是4个问题,对不起,这对我来说很难清楚表达).
解决方法:
1) My question is, do these projects depend on microsoft compilers due
to building against these microsoft-only libraries (which apparently
foss compilers can’t do)?
编译器供应商和GUI框架供应商可以提供与MS DLL类似的DLL.一些MS DLL是系统DLL,并由其他编译器和框架供应商使用.
如果您使用的是编译器或框架特定的DLL,则需要同时安装程序(项目).
2) Also, is it possible that, even if I avoid any msvcrt/.net/etc.
calls, i can still find myself needing a microsoft compiler to compile
native windows software (assuming no usage of libraries that do
perform those calls)?
不.如果您浏览StackOverflow上的帖子,有很多人直接使用Windows API,我猜你称之为原生Windows软件.通常,这些API的代码位于系统API中.编译器将函数调用转换为对这些DLL的调用,并根据需要加载它们.
3) Can I simply use clang and some widget library to make native
windows software just as well?
不,你不能.这就是他们存在的原因.
同样,许多人在没有MS编译器的情况下使用Qt和xWidgets等框架.我做了一段时间.我切换到Visual Studio,主要用于调试器.我不喜欢其他IDE如何尝试使用GDB.否则,我不会使用MS,因为它们倾向于使用Microsoft标准语言而不是ISO.
4) Can I modify the source of a project so that it doesn’t depend on a
microsoft compiler?
不,这就是为什么有免费软件和其他编译器的原因.
嗯,可以使用Java创建不使用MS编译器的GUI,但是他们使用Windows API.
尝试安装Cygwin.当您查看所有库时,您将意识到可以创建不使用MS编译器的项目.再次,通读StackOverflow帖子,你会发现人们正在使用其他编译器,如Intel,GNU,Clang,Greenhills等.一些嵌入式系统的编译器也将为Windows操作系统编译,因此您可以编写适用于两个平台的代码.
看起来你需要在网上搜索“GNU GUI tutorial C”并查看弹出的内容.此外,为其他框架搜索“wxWidgets”和“Qt”.
内容总结
以上是互联网集市为您收集整理的c – 在Windows上编译是否必须是MSVC?全部内容,希望文章能够帮你解决c – 在Windows上编译是否必须是MSVC?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。