首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Windows上编译haskell程序时,GCC没有工作

在Windows上编译Haskell程序时,GCC没有工作。Haskell是一种函数式编程语言,它的编译器通常使用GHC(Glasgow Haskell Compiler)来将Haskell代码编译成可执行的机器码。在Windows上,GHC默认使用MinGW作为GCC的实现来进行编译。

如果在编译Haskell程序时遇到GCC没有工作的问题,可能是由于以下原因:

  1. 缺少GCC:首先需要确保系统中已经安装了MinGW或者其他兼容的GCC实现。可以通过访问MinGW官方网站(https://mingw-w64.org/doku.php)下载并安装MinGW。
  2. 环境变量配置:安装完MinGW后,需要将MinGW的安装路径添加到系统的环境变量中。具体步骤是:打开控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 环境变量。在系统变量中找到"Path"变量,点击编辑,然后在变量值中添加MinGW的安装路径。
  3. GHC配置:GHC在编译Haskell程序时会调用GCC,因此需要确保GHC能够正确找到GCC的路径。可以通过在命令行中执行"ghc --info"命令查看GHC的配置信息,其中会包含GCC的路径。如果GCC的路径不正确,可以通过编辑GHC的配置文件进行修改。GHC的配置文件通常位于用户目录下的".ghc"文件夹中。

综上所述,以上是解决GCC没有工作的一般步骤。如果问题仍然存在,可能需要进一步检查系统环境和配置,或者尝试重新安装GHC和MinGW。希望这些信息对您有所帮助。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

编译原理基础

GCC发布后很快地得到扩展,变得可处理C++。之后也变得可处理Fortran、Pascal、Objective-C、Java、Ada,Go与其他语言。...简单来说,gcc 指的是 GCC 中的 GNU C Compiler(C 编译器);g++ 是 G++ 中的 GNU C++ Compiler(C++ 编译器),但实际 gcc 和 g++ 都不是编译器...MinGW是什么 参考 MinGW 维基百科 MinGW(Minimalist GNU for Windows),又称 mingw32,是将 GCC 编译器和 GNU Binutils 移植到 Win32...MinGW是从Cygwin(1.3.3版)基础发展而来。 GCC 支持的语言大多在 MinGW 也受支持,其中涵盖 C、C++、Objective-C、Fortran 及 Ada。...GNU工具链是什么 GNU工具链(英语:GNU toolchain)是一个包含了由 GNU 计划所产生的各种编程工具的集合,其组成包括我们非常熟悉的 GCC 编译器,由自由软件基金会负责维护工作

87610

MinGW 安装教程

它实际是将经典的开源 C语言 编译GCC 移植到了 Windows 平台下,并且包含了 Win32API 和 MSYS,因此可以将源代码编译生成 Windows 下的可执行程序,又能如同在 Linux...除此之外,编译复杂的程序时,还需要你会编写 Makefile ,否则只能一个文件一个文件的编译,可想而知会多么辛苦。...当然如果您是 Linux 下工作,那么Code::Blocks可能是一个选择,不过最大的可能是您必须习惯使用 GCC编译程序。...因为 MinGW 本来就是将 GCC 移植到 Windows 的产物,所以操作方式和 GCC 一样,只是 Linux 下命令是被键入到“终端”中,而 Windows 下则是被键入到“命令提示符”里。...如果代码没有明显的编译错误,运行时也没有逻辑错误,则在最终编译为可发布版的程序时,我们还要考虑编译优化的问题,以便生成的程序文件拥有更小的体积,和更高的运行效率。

1.6K10
  • MinGW安装教程

    它实际是将经典的开源 C语言 编译GCC 移植到了 Windows 平台下,并且包含了 Win32API 和 MSYS,因此可以将源代码编译生成 Windows 下的可执行程序,又能如同在 Linux...除此之外,编译复杂的程序时,还需要你会编写 Makefile ,否则只能一个文件一个文件的编译,可想而知会多么辛苦。...当然如果您是 Linux 下工作,那么Code::Blocks可能是一个选择,不过最大的可能是您必须习惯使用 GCC编译程序。...因为 MinGW 本来就是将 GCC 移植到 Windows 的产物,所以操作方式和 GCC 一样,只是 Linux 下命令是被键入到“终端”中,而 Windows 下则是被键入到“命令提示符”里。...如果代码没有明显的编译错误,运行时也没有逻辑错误,则在最终编译为可发布版的程序时,我们还要考虑编译优化的问题,以便生成的程序文件拥有更小的体积,和更高的运行效率。

    3.5K10

    ​hostguest nativelangsys及uniform cui cross compile system

    所以就有二个OS间处理统一编译的需求,这就是cross compile和统一cui套件的需求。。...IDE平台,server core as guest负责运行就可以,但是现实的情况却是:host2guest大都没有支持,比如windows 2 linux的mingw64实现往往没有反过来丰富。...准备windows的简单cross compile toolchain环境 ----- 一般我是不倾向自己编译的,不说了,先下载http://repo.msys2.org/distrib/i686/msys2...但是我发现g++编译序时老出hidden sysbols with DSO etc..之类的错误就放弃了,因为这似乎是个巨大的坑。下回有时间自己编译了再说。...准备windows的msys2+cmake+cross compile toolchain环境 ----- 在编译复杂的程序时,需要专门的cmake工具它名字中的C就是cross compile,cmake

    63630

    关于编译的重要概念总结

    如果脑海中没有一个整体的概念框架的话,正如那张图,一个全副武装的骑士,虽然防护的很好,但是对于编译器的基础知识掌握的不牢,就像头盔的一个缝隙,可能下一箭正中缝隙,败下阵来。...这时 Linus 为了 PC 运行 Unix, Minix 的启发下,开发了Linux。当然 Linux 只是一个系统内核,系统启动之后使用的仍然是 gcc 和 bash 等软件。...将函数库中相应的代码组合到目标文件中,汇编文件和系统库文件链接起来,生成特定平台可执行的程序。 最早的操作系统中,是没有链接器的,由加载器loader进行工作,所以ld的命名由此而来。...它实际是将经典的开源 C语言 编译GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。...而且Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作

    95020

    MinGW安装教程——著名CC++编译GCCWindows版本

    它实际是将经典的开源 C语言 编译GCC 移植到了 Windows 平台下,并且包含了 Win32API 和 MSYS,因此可以将源代码编译生成 Windows 下的可执行程序,又能如同在 Linux...除此之外,编译复杂的程序时,还需要你会编写 Makefile ,否则只能一个文件一个文件的编译,可想而知会多么辛苦。...当然如果您是 Linux 下工作,那么Code::Blocks可能是一个选择,不过最大的可能是您必须习惯使用 GCC编译程序。...因为 MinGW 本来就是将 GCC 移植到 Windows 的产物,所以操作方式和 GCC 一样,只是 Linux 下命令是被键入到“终端”中,而 Windows 下则是被键入到“命令提示符”里。...如果代码没有明显的编译错误,运行时也没有逻辑错误,则在最终编译为可发布版的程序时,我们还要考虑编译优化的问题,以便生成的程序文件拥有更小的体积,和更高的运行效率。

    19K33

    GCC 编译器的使用

    Windows 下进行开发时,只需要点几个按钮即可编译,集成开发环境(比如 Visual studio)已经将各种编译工具的使用封装好了。...编译序时,加上-v 选项就可以看到这几个步骤。...\n"); 04 } 05 ARM 版本的编译工具与 gcc、ld 等工具的使用方法相似,很多选项是一样的。本节使用 gcc、ld 等工具进行编译、链接,这样可以 PC 直接看到运行结果。...libsub.so sub.o 以后要使用 sub.c 中的函数 sub_fun 时,链接程序时,指定引脚 libsub.so 即可,比如: $ gcc -o test main.o -lsub -L...如果这里没有找到,就在上面提到的两个标准前缀中寻找,仅此而已。如果上述方法没有找到这个文件,就不链接它了。多数情况的多数机器,’libgcc.a’并非必不可少。

    3.8K31

    关于 Python这十大特色你们了解多少呢?

    你可以 GNU/Linux、Windows、FreeBSD、Macintosh、 Solaris、 OS/2、 Amiga、 AROS、 AS/400、 BeOS、 OS/390、 z/OS、 Palm...在你使用诸如 C 或 C++ 等编译语言编写程序时,需要将这些语言的源代码通过编译程序配合 其中不同的标记(Flags)与选项,来将它们转换成你的电脑所使用的语言(例如 0 与 1 构成 的二进制码)。...当你运行这些程序时,链接程序或载入程序将会从硬盘中将程序拷贝至内存 中并将其运行。 另一方面,Python 不需要将其编译成二进制码。你只需要直接从源代码 运行 该程序。... 序内部,Python 会将源代码转换为称为字节码的中间形式,尔后再转换成你的电脑所使用的 语言,并运行它。...实际,这一流程使得 Python 更加易于使用,你不必再担心该如何编译 序,或如何保证适当的库被正确的链接并加载等等步骤。

    70820

    老牌CC++ IDE——DEV C++有新的大版本了

    大意如下: 是一个全新的,由Embarcadero赞助的c++开发IDE,集成MINGW(gcc编译器,同时也可以绑定cygwin和其他基于gcc编译器。...软件使用Delphi开发,性能优越,是windows下的原生应用开发,因此并行编译和多线程编译都有得到发挥,因此,启动速度和编译速度应该是比较快的,至少比codeblocks快,更新频率也比codeblocks...特点 优化改进代码补全提示功能 输入回车时检查语法错误,并在错误处用波浪线标记 用户编辑界面增强和改进 重新设计并改进调试功能 改进结构浏览器 自动链接功能:可以根据用户代码中包含的头文件决定编译时链接哪些库文件...这样可以减少调试程序时反复输入数据的麻烦 集成EGE绘图库和海龟作图库及其项目模板,以提升初学者的学习兴趣 支持打开、编辑和编译UTF-8编码的源代码文件。 增加 重构->符号重命名 功能。...6.3-beta2版本开始改为mingw-w64 gcc 10.2) 兼容Windows XP/Windows 7/Windows 10 支持Windows 7/Windows 10高DPI(需要设置,

    2.7K20

    为什么 Haskell 是我们构建生产软件系统的首选

    从这个意义讲,纯度意味着我们编写的代码是纯净的,或者说没有副作用。...仅当这类纯函数没有副作用(例如在主机系统创建文件、运行数据库查询或发出 HTTP 请求)时这才能做得到。Haskell 的类型系统就具有这种纯度。... Haskell 中开发应用程序时,我们通常只一个窗格中打开一个带有文本编辑器的终端,然后另一个窗格中打开 ghcid。...Haskell 的类型系统没有上述问题。类型系统是这个语言的自带特性,编译器始终会验证类型是否正确。...我们从事过的许多项目我们做了很多工作,包括实现了作为服务于一个 HTTP API 的同一可执行文件的一部分运行的 websocket 服务器,还创建了一个多线程 worker 系统,其所需的开销远低于管理单个

    1.4K10

    一文看尽C++ 过去的这一年

    标准库还有更多的工作需要完成,特别是针对并行算法和文件系统等重要问题的工作。...下一次会议将于2020年2月布拉格举行。 二月: 夏威夷科纳会议 在这次会议,下列C++新特性投票后被批准纳入了C++20标准: 模块 - P1103! 协 - N4736!...AddressSanitizer支持 Windows 使用 MSVC 编译的项目 和CMake更好的集成。...PVS-Studio:这是一个使用C、C++和C#编写的,用于程序源代码中进行错误检测的工具。Windows和Linux环境下都能够工作。...如果你没有参加过任何一个会议,你可以YouTube快速输入它的名字,就会从中找到大部分演讲的视频,这很令人惊讶。你也可以使用一些网络搜索引擎很容易地找到相关会议报告。

    3.4K10

    免杀技术-使用纤免杀

    spm_id_from=333.999.0.0&vd_source=4652172a15b97e23a4fc522adb2ef705 使用纤免杀 纤Fiber的概念:纤是比线程的更小的一个运行单位...可以把一个线程拆分成多个纤,然后通过人工转换纤,从而让各个纤工作。线程的实现通过Windows内核完成的,因此Windows可以自动对线程进行调度。...但是纤是通过用户模式的代码来实现的,是程序员自己写的算法,内核不知道纤的实现方式,而是你自己定义的调度算法,因此纤是“非抢占”的调度方式 https://docs.microsoft.com/en-us...010editor中 3、tools – binaryxor 选择异或次数 4、生成之后,全选 edit – copy as c code,填入到上面的实现代码中,异或次数按照刚刚设置的进行修改 5、gcc...xc2.c -mwindows编译生成exe 免杀效果:火绒✔ def✔ eset✔ 360✔(需要迅速注入其他进程)卡巴斯基❌ 反模拟运行检测 本质就是将恶意程序放入沙箱中 看看它会做什么并监视它的行为

    2.1K20

    ​随笔 | 写代码时极有可能面临的焦虑

    写代码的优点大概也是其缺点 仅仅从工作内容看,我觉得有两点是『写代码』这三个字概括的工作很吸引我的: •说一不二,确定性•需要不断学习新技术 说一不二,确定性 我们写出一个1+1的程序,则得到的结果一定是...当我写出一个1+1的程序时,得到的结果是3或者得不到结果,我就会很迷茫,进而只能根据自己有限的知识与检索能力逐一进行排查: •程序语法有错误吗?通常不会有,否则编译时会报错;•程序逻辑有错误吗?...我面临的问题是,我无法 windows 10 平台上编译并使用 gecode ,而让我感到焦虑的是:我之前已经 linux 上成功编译运行了 gecode 的实例,并且 windows 10 我都是按照...gecode 的编译说明书配置的: •我首先尝试用 gcc/g++ 编译,失败,调用 sh 脚本时,显示 OS 不适配,那我只能更换平台•于是改用 Cygwin gcc/g++ ,在编译时也报错...令我焦虑的是,我没有扎扎实实学完技术,而是直接上手做。 比如,gecode 自己有一套逻辑体系,而这个体系并没有我的脑海里成型。

    83820

    大名鼎鼎的 Linux —— 进程,线程,协

    ELF 文件也是一种可执行文件,其中也包含二进制内容,除此之外还有一些其他的信息 gcc 编译后的为 ELF 文件 go 编译后的二进制文件 解释器 解释器是一种直接执行高级语言代码的计算机程序..., 而无需将代码编译成机器码 优点: 消除了编译整个程序的负担,程序可以拆分成多个部分来模块化 缺点: 解释器像是一位“中间人”,每次运行程序时都要先将代码转成另一种语言的代码,然后再作运行,因此解释器的程序运行速度比较缓慢...看了上面你肯定知道 B 语言也是更低级的语言,其实编译器和编程语言的诞生,都是按照上面的逻辑 最后,上文使用的 gcc 编译器不是通过汇编写的,也不是通过 B 语言写的,而是通过 C/C++ 写的(当今时代的...这样对于操作系统而言,这个程序实际只阻塞了一次 协调度 上面说到 IO 阻塞的时候,会进行协切换。那如何知道当前的 IO 是阻塞的呢? 答案就是之前写到的一篇文章——IO多路复用。...io函数,当这些异步函数返回 busy 或 bloking 时,golang 利用这个时机将现有的执行序列压栈,让线程去拉另外一个协的代码来执行,并且 golang 的协是多线程的 协调度器 实际

    71400

    Effective Debugging-高效调试

    5.预发(发生故障)和测试系统(正常运行)寻找差别 #对每一行进行裁切从第四个字段开始显示 cut -d ' ' -f 4- file.log 系统之间对比,找出行为的区别,将所有可能的因素都要考虑到...7.使用构建tool不同环境下执行 特别是C/C++开发环境下,对操作系统编译器的支持都需要在不同环境执行看一下程序结果。注意字节、内存对齐等问题。...2.对Ada,C,C++,Object-c等程序需要通过LLVM和GCC这两种编译器执行。 3.java应用同时使用openjdk。 4.开发Ruby程序时,多尝试其他VM。...5.当你使用了较为低级语言完成了一个算法时,发现无法运作可以使用Python,R,Haskell,shell等高级语言重新实现它并反复对比。...2.给调试工作流出足够的时间,学习工具、技术和方法。 3.安排好自己的工作环境,让自己沉侵其中不受干扰。 4.遇到难题没有思路时,建议放松一下听一下music或者睡一觉。

    73090

    使用vs2019进行Linux远程开发的方法步骤

    通常,当我们开发Linux程序时有两种方案: Linux直接编写程序并进行运行测试和调试 Windows或Mac OS X借助工具进行远程开发 虽然我自己是Linux环境直接进行开发的,但也有许多的人是...Windows环境从事开发工作的,如果离开自己熟悉的系统到陌生的环境也许会影响到工作效率。...我们开始之前,首先要做点准备工作: 安装好vs2019,且勾选了c++ for Linux功能; 准备一个可用的Linux远程环境,例如配置了静态IP的Linux虚拟机,并且已经安装好了GCC工具链以及...使用数学函数和第三方库 Linux使用标准库提供的数学函数也是一个老生常谈的问题,根据你使用cpp还是c会有如下几个情况: 使用cpp时,libstdc++依赖于libm,所以使用g++编译你的程序时会自动链接数学函数库...Windows我们通常指定好附加包含目录和附加库目录即可正常编译,但是Linux必须明确指定链接库的名字,因此我们项目属性中进行设置。

    4.3K40

    【C语言】第一回(源(.c)文件怎么生成可执程序(.exe)文件)

    C语⾔代码是放在 .c 为后缀的⽂件中的,要得到最终运⾏的可执⾏程序,中间要经过编译和链接2个过程。 ⼀个⼯⼀般都会有多个源⽂件组成,如下图所⽰,演⽰了源程序经过编译器和链接器处理的过程。...注: 每个源⽂件(.c)单独经过编译器处理⽣成对应的⽬标⽂件(.obj为后缀的⽂件) 多个⽬标⽂件和库⽂件经过链接器处理⽣成对应的可执⾏程序(.exe⽂件) 这就是,Windows电脑C语⾔程序⽣成的...VS2022 集成了MSVC(安装报包较⼤⼀些,安装简单,⽆需多余配置,使⽤起来⾮常⽅便) •XCode 集成了clang(苹果电脑的开发⼯具) •CodeBlocks 集成了gcc(这个⼯具⽐较...四、VS项⽬和源⽂件、头⽂件介绍 VS写代码,我们是需要创建项⽬的,直接新建项⽬就可以了。 项⽬中就可以添加源⽂件和头⽂件。...VS2022运⾏代码的快捷键: Ctrl+f5

    14310

    c和fortran混编

    如果是gcc -o sample main.c foo.c那么因为后缀名为.c所以会先编译,又因为没有-c选项所以会再链接。...就好像gcc默认会链接c库一样,g77默认会链接 fortran的一些基本的,标准的库;另一个办法就是查明g77会链接哪些基本的,标准的fortran库,这也很简单在编译链接fortran程序时 加上-...但是为了简单安全方便,还是建议直接用相应的编译器完成链接工作(比如 fortran就用g77),因为它们的链接顺序已经理好了(并且它们除了链接自己的库还链接c库,而gcc只链接c库,所以用它们不用担心链不到...此例中事实实际的编译器是f77,我机器没有f90。...这是编译器(f77)的一个命名规则,没有为什么,它就是把你fortran中的函数名字全转换成小写,然后最后加一个下划线。我昨天搜了很多版本,头昏脑胀,怎么调都说找不到,也没有想到要自己看看。

    1.6K41

    我写了一本书,《深入理解 Kotlin 协

    还是一个雏形,直到我去年重制Kotlin从入门到精通和编写 《深入理解 Kotlin 协》 时,才为它添加了作用域、取消支持等功能,并进一步的完善很多细节的设计。...开发者群体如果从一开始就在这个小圈子内成长的话,确实没有什么机会接触到协。...这本书主要回答了以下几个常见的问题: 协是什么?Kotlin 协又是什么? Kotlin 协工作机制是怎样的? 如何将 Kotlin 协投入生产实践当中?...其中,使用 VSCode 处理文字内容;使用 Pandoc 将 md 文件编译成 docx 文件;使用后面的四个工具来绘制插图 —— 它们实际是将源码编译成图片的处理工具。 ?...除了使用 Haskell 编写的 Pandoc 的插件 cross-ref 我实在无法快速上手以外,我学习到了如何使用 Python 和 Lua 编写用来在编译过程中处理图片生成逻辑和文字预处理的 Pandoc

    1.3K10

    VSCode 配置 C++ 运行环境

    环境准备 项目 内容 操作系统 Windows 10 软件安装 VS code 官网:https://code.visualstudio.com/ 安装gcc编译器 下载 链接:...MinGW-w64 - for 32 and 64 bit Windows 选最新版本中的x86_64-posix-seh 安装 解压压缩包 将目录中的bin添加到环境变量 验证 cmd中输入命令...具体参见VSC的文档,即使设为never,手动点进去还是可以看到 "focus": false, // 设为true后可以使执行task时焦点聚集终端,但对编译C/C+...+来说,设为true没有意义 "panel": "shared" // 不同的文件的编译信息共享一个终端面板 }, "problemMatcher...打断点 "cwd": "${workspaceFolder}", // 调试程序时工作目录,此为工作区文件夹;改成${fileDirname}可变为文件所在目录 "environment

    1.1K10
    领券