首页
学习
活动
专区
圈层
工具
发布

Windows下C语言环境搭建

安装 MinGW 使用 Windows 的开发环境,我们绝大多数情况下都会使用 MSVC 来演示我们的程序,但 MSVC 实际上是个 C++ 编译器,对于 C 语言的语法支持也主要涉及兼容 C++ 的部分...所以如果我们想要测试 C90、C99、C11 的差异,很多时候 MSVC 就无能为力了。...推荐通过 Msys2 来安装 MinGW,我们可以在 Msys2 的官网 看到它的安装方法。...Msys2 本质上提供的是一套类似于 archlinux 的包管理工具,我们可以在 Msys2 的控制台当中通过 pacman 来安装相应的工具包,这其中就包括 MinGW 的编译工具链。...就是程序编译之前执行的操作,预处理指令又叫做宏。那编译又是啥?编译就是将我们编写的源代码翻译成机器能够执行的机器指令的过程,源代码机器是不能直接执行的,不然程序员就要下岗了。

3.6K10

Windows10下配置CMake+Make+Cpp环境

配置 MinGW-w64 MingGW-w64 项目旨在 Windows 系统上支持 GCC 编译器,其为 Windows 提供了使用 GCC 编译器的功能。...安装好 MSYS2 软件包后,在 Windows 10 的菜单栏中找到 MSYS2,然后打开 MSYS2 MSYS 程序,其提供了类 Arch 的终端环境(Archer 狂喜),然后安装一系列的 GCC...编译链工具: pacman -S mingw-w64-x86_64-gcc pacman -S mingw-w64-x86_64-cmake mingw-w64-x86_64-extra-cmake-modules...安装完这些编译链工具后,找到 MSYS2 的安装路径(我这里是 C:\msys64),将 C:\msys64\mingw64\bin 加入到系统变量 Path 中: 「此电脑右键」->「属性」->「高级系统设置...使用 CMake + Make 对于创建的 Cpp 项目,在其中写好 CMakeLists.txt 文件后,可以在 PowerShell 中按如下步骤进行编译: mkdir build cd build

3.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Windows下MSYS2中编译OpenBLAS过程记录

    下编译OpenBLAS正确的打开方式是在MSYS2下用MinGW编译。...MSYS的官网 http://www.mingw.org/wiki/MSYS 简单说MSYS就相当于一个在Windows下运行的linux bash shell环境,支持绝大部分linux常用命令,...而MSYS2 是一个独立项目,它重写了MSYS, MSYS2安装更简单,使用更方便,还提供pacman工具进行软件包的安装管理(就像ubuntu 的apt-get,centos 的 yum), MSYS2...官网 http://www.msys2.org/ 所以有了MSYS2的帮助再加上MinGW,我们可以直接在Windows下make 编译OpenBLAS的Makefile,而不需要用cmake MSYS2...(这要写Windows注册表) 我选择直接解压.tar.xz文件来安装 安装MinGW编译器 MSYS2本身的pacman可以提供软件安装功能(参见上面MSYS2的官网上的示例),通过pacman就可以安装

    5.9K120

    【CMake】使用 CMake 构建 CC++ 项目的标准流程详解

    平台 推荐工具 Linux / macOS gcc, clang, make, ninja Windows (MinGW) MinGW-w64,MSYS2,配置好环境变量(gcc, make) 3️⃣...Windows + MinGW: cmake -G "MinGW Makefiles" .. 编译项目: cmake --build . 运行生成的可执行文件: Linux/macOS: ....工具链选择:Windows 推荐 MinGW 或 MSYS2 以使用 GNU 工具链。 CMake 最低版本:建议 ≥ 3.10,兼容主流功能。...8️⃣ 总结 CMake 构建流程简单且跨平台: 建议使用 Out-of-Source 构建 运行 cmake 生成构建文件 通过 cmake --build ....编译 运行生成的程序 通过合理配置和跨平台命令,CMake 方便地支持多操作系统和构建工具。 本节内容已经全部介绍完毕,希望通过这篇文章,大家对 CMake 有了更深入的理解和认识。

    92920

    glib:windows下基于MSYS2环境编译glib2的过程

    对MSYS2我还是比较熟悉的,既然官方的建议也是在MSYS,那就在MSYS2下搞吧,MSYS2安装很简单,网上有教程,请自行百度。...安装依赖库 有了MSYS2安装依赖库就非常简单了,以下是通过pacman安装所有编译glib所需要的工具和依赖库。...lib) 问题来了,在MSYS2下编译用的是MinGW编译器,生成的导入库(import library)都后缀是.dll.a,MSVC怎么使用呢?...但如果你是用cmake来组织项目,在MSVC编译环境下cmake的find_library是找不到后缀为.dll.a的import library. 怎么办呢?...而默认情况下,MSYS2环境中搜索路径($PATH)中没有MSVC编译器的安装位置(bin).所以这一条命令不能执行,不能生成lib。

    3.8K10

    ​hostguest nativelangsys及uniform cui cross compile system

    作为跨OS的编译器mingw,它里面的以前只有mingw32只能编译32位windows程序。...在这里,我们选择用二个简单的例子来说明,描述host2guest的mingw64 cross compile toolchain的使用,而其实,读者应该尝试组建自己的toolchain,且使用复杂的开源程序来测试...所以这里方案中的msys2也算是对其的升级。...下面说说其简单用法: 使用绿色版cross compile的简单方法: ----- 解压到任意一个文件夹我解压到的是桌面mingw,系统变量中加入mingw/bin,写一个简单的test.c,就是printf...准备windows上的msys2+cmake+cross compile toolchain环境 ----- 在编译复杂的程序时,需要专门的cmake工具它名字中的C就是cross compile,cmake

    74230

    征服工具链-FFmpeg的编译(Windows 篇)

    既然生成的脚本构建源码的脚本是在UNIX-like系统上进行编译的,那么我们在windows上编译软件就会很困难,解决方法是,msys2,它可以在windows上模拟一个UNIX-like系统。...为了解决Autoconf的跨平台缺陷,cmake诞生。 MSYS2 MSYS2 (Minimal SYStem 2)主要用于 shell 命令行开发环境。...安装MSYS2之后,还需要在MSYS2里手动安装Mingw-w64 MinGw 和 cygwin 操作系统提供的系统API是不同的,如Windows使用CreateProcess()创建进程,而Linux...Cygwin 提供完整的类Unix 环境,Windows 用户不仅可以使用GNU 工具,理论上Linux 上的程序只要用Cygwin 重新编译,就可以在Windows 上运行。...即cygwin提供在windows平台上运行的类UNIX模拟环境,MinGw是在windows上使用gcc编译器,提供编译功能。 gcc的输入是源文件,输出是静态库/动态库/可执行文件。

    1.7K30

    重学C语言环境搭建

    以前很多C语言的内容都忘记了,所以记此笔记,从学C语言。 笔记使用Clion作为IDE,MinGW作为C编译器。支持window,linux,和Mac玩。...引用站外地址 Clion 官方下载地址 先下载下来 安装MSYS2 MSYS2 也是一个包管理软件,用来安装环境非常简单。推荐使用。...pacman -S mingw-w64-x86_64-toolchain 这样,就把所有的环境给安装下来了,非常简单。 至此,需要的东西,全部都给安装下来了,可以愉快的玩耍C语言了。...有mingw64和mingw32,64位系统用mingw64就好,按照下图配置好构建工具和编译器就行。 然后设置CMake,默认是Debug,如果没有,手动添加就是了。...这儿是可以设置多个编译器环境的,例如使用微软的MSVC,当然了,我们只安装了MinGW,用这个就好了。

    97320

    FFmpeg入门及编译

    Studio 2022(我本地已有) MSYS2 + CMake 2、MSYS2 除了需要安装 VS 之外,还要安装 MSYS2,这是一款 Windows下模拟 Linux 的软件。...: 再次执行程序,可以看到如下的结果 解决方案二: 只需将我们之前编译好的 FFmpeg 库,即提示的无法找到的 .dll 库,拷贝到执行程序的同一目录下,这样执行程序就可以找到该库并正确执行了...,将其中的库路径修改为指定的输出路径 2、编译 x264 x264 库的编译还是比较简单的,与 SDL 一样我们也要先获取其源码,可以通过下面的命令获取 x264 源码: git clone https...但是这里发现一个问题,就是目录下没有 include 目录 为了解决这个问题,我又用 MSYS2+mingw 的方式重新编译了一遍 fdk-aac,这种方式是可以生成 include 头文件的 ①...、打开 MSYS2 MINGW64 ②、在 fdk-aac 目录下执行如下命令 pacman -S mingw-w64-x86_64-gcc .

    2.5K62

    conan入门(二十六):使用make编译erpcerpcgen(makefile)

    conan 使用make编译erpc/erpcgen(makefile) conan是个包管理工具,不仅仅支持cmake编译,还支持很多常用的构建工具如configure/make,msbuild,VisualStudo...Ubuntu 16.04)下都通过了测试,因为eRPC项目本身设计的限制,Windows下不支持Visual Studio编译器,只能用MinGW编译器。...在Windows编译时需要依赖MSYS2提供的bash shell环境,而msys2/cci.latest本身也提供了默认MinGW编译器,这有可能与你当前系统安装的编译版本不同,所以需要要通过环境变量.../.conan/profiles下增加一下支持MinGW编译的profile文件,如下: profiles/mingw # 此profile文件假设已经将MinGW编译器bin文件夹添加到了Windows...=x86_64-w64-mingw32 [settings] compiler=gcc # MinGW编译器版本号,需要根据你的MinGW编译器的实际的版本号来修改 compiler.version=5.2

    1.3K30

    CMake构建学习笔记6-giflib库的构建

    其中一个方案是安装MSYS2(Minimal SYStem 2),它是一个基于Windows的类Unix shell环境,能够提供一个包括make工具的跨平台GNU工具链,被称为MinGW(Minimalist...不过这种方案很麻烦,最关键的是Windows下MinGW编译的库和MSVC编译的动态库可能存在二进制兼容的问题。...另外一种方案是,如果库的代码量并不大,可以自己组织CMakeList.txt文件进行编译,这里笔者在网上找到了某个大神组织的GIFLIB项目的CMakeList.txt文件: # 输出cmake版本提示...# 支持当前目录 set(CMAKE_INCLUDE_CURRENT_DIR ON) # 判断编译器类型 message("CMAKE_CXX_COMPILER_ID: ${CMAKE_CXX_COMPILER_ID...}/giflib.def") else() message(">> unknow compiler.") endif() # TODO: 如有需要,请添加测试 # 安装头文件到 include

    26110

    FFmpeg开发笔记(二)搭建Windows系统的开发环境

    一、安装MSYS2​ MSYS2允许在Windows系统模拟Linux环境,它的命令行界面可以很好地仿真Linux终端,所以在Windows系统上编译和执行FFmpeg程序都要通过MSYS2的控制台操作...如果说MSYS2相当于Windows环境的Linux模拟器,那么MinGW给MSYS2准备了32位和64位两套编译器,而我们的目标是在Windows系统模拟64位的Linux开发环境。...等待pacman将编译工具安装完毕,会在mingw64\bin下面找到相应的可执行程序了。...4、在MSYS2的控制台执行以下命令查看FFmpeg的版本信息: ffmpeg -version 发现控制台回显如下所示的FFmpeg版本与编译器版本信息,说明FFmpeg程序成功跑起来了。...project) ​三、编写测试程序 关于C语言的代码验证,可采用上一篇文章介绍的测试代码及其编译命令,这里不再赘述了。

    1.1K10

    CMake构建学习笔记23-SQLite库的构建

    构建思路 在前文中构建了大量的库包程序(参看CMake构建学习笔记-目录)之后,可以总结一下在Windows下使用脚本构建程序的办法: 使用CMake构建。...这是目前最通用最流行的构建方式,大部分C/C++程序都在逐渐向这个方向转。 使用namke构建。在CMake流行之前,有的程序会提供MSVC项目文件,这种情况下可以使用namke来进行构建。...使用MSYS2/MinGW构建。适用于只提供了Linux环境构建方式的程序,不过可能会有二进制兼容问题,一般不推荐。 使用第三方的项目构建。...SQLite是一个老牌的C库,不提供CMake的构建方式,而且它还是个可执行程序而不仅仅是库,这给程序的集成带来一定的麻烦。 那么如何在Windows下将SQLite构建成库文件呢?...SQLite提供了一个很不错的特性,就是支持将所有的实现代码组合成一个sqlite.c文件,因此自己组织CMake项目就比较简单,组织结构如下: project-root/ ├── include/

    16510

    CC++ 构建系统,我用 xmake

    因此使用 XMake 可以作为一种补充,对于那些想要简单快速入门 C/C++ 开发的新手,或者想要更加方便易用的包管理,或者想临时快速写一些短小的测试项目。...我们也做过一些对比测试数据,供大家参考: 多任务并行编译测试 ? 单任务编译测试 ?...傻瓜式多平台编译 XMake 的另外一个特点,就是高效简单的多平台编译,不管你是编译 windows/linux/macOS 下的程序,还是编译 iphoneos/android 又或者是交叉编译。...编译本机 Windows/Linux/MacOS 程序 当前本机程序编译,我们仅仅只需要执行: $ xmake 对比 CMake $ mkdir build $ cd build $ cmake -..... $ make 我没有找到很方便的方式去配置编译 ios 程序,仅仅只能从其他地方找到一个第三方的 ios 工具链去配置编译。

    3.1K20

    关于opentelemetry-cpp社区对于C++ Head Only组件单例和符号可见性的讨论小记

    只有一个模块有实现,其他的模块都是导入这个模块的实现,否则链接时会报重定义。所以这个申明必须位于 cpp 文件中,不能位于头文件中。...所以我写了几个Windows下的example用于测试可行性。...--with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-pkgversion='Rev2, Built by MSYS2...但是对于所有的dll,MSVC还是生成一个用于 .lib 文件也是用于链接的,像cmake这类构建工具,只会链接这个.lib文件,而不是直接链接 .dll 。...然而我们做基础性功能库的时候不能定死用户的使用场景和限制使用平台,所以对接口的规范和约定设计会更加偏向保守。

    1.3K30

    thrift:在cygwin下编译C library for win32(libc_glib)

    thrift on Windows (Native) 使用cmake 编译还是比较方便的。...(有空专门写一个thrift c++库的编译过程) 但是要在windows下编译thrift C library,用MSVC或MinGW都是无法编译的,也无法借助MSYS2环境编译。...必须在cygwin下编译.原因就是lib/c_glib下的源码网络通讯部分调用的接口都是基于unix接口开发的,没有针对MSVC或MinGW编译器做适应性修改,所以代码中全部都是如下这样的include...(apt-cyg需要调用wget或lynx来下载文件) # 安装编译所需的工具的依赖库 # 注意这里的编译器是gcc-g++,不是mingw64-x86_64-gcc-g++也不是mingw64-x86.../bootstrap.sh # 生成Makefile # 这里为了缩短编译时间,只编译c_glib库cpp,java,python库都指定不编译,并且不编译测试代码和tutorial # CXXFLAGS

    1.6K20

    git 入门教程之 git bash 竟然不支持 tree 命令

    简单解释下这段话的意思: 如果在 mintty 终端调用原生 cmd 程序,简单的输出指令没有什么问题,交互指令可能存在问题. 因此建议使用 winpty 进行包装再调用原生 cmd 程序....然而,心有余而力不足,编译安装再到测试确实是不少挑战,最重要的是,电脑太卡了等不了. 所以,收集到了一些资料方便有条件的小伙伴去研究吧! ?...下载链接: ftp://mama.indstate.edu/linux/tree/tree-1.8.0.tgz 在 mingw ,msys2 或者 cygwin 系统上编译安装 tree 的 c 文件...前面我们一直在说 mintty 终端模拟器也好,或者 mingw ,msys2 和 cygwin 操作系统也罢,他们或多或少和 GNU 有一些联系,而 GNU 是自由软件操作系统,源码会随程序一同发布....git bash 默认安装程序无包管理工具等高级功能,如需扩展自定义命令应该下载Git for Windows SDK. git bash 环境兼容 MSYS2 ,MinGW ,Cygwin 等系列自由软件

    3.1K70

    使用C#+FFmpeg+DirectX+dxva2硬件解码播放h264流

    依赖,更无需安装任何插件,你的程序完全绿色运行);并且如果硬解不可用,切换到软件是自动过程   首先需要准备好visual studio/msys2/ffmpeg源码/dx9sdk。...ffmpeg源码大家使用4.2.1,和我保持同步,这样比较好对应,下载地址为ffmpeg-4.2.1.tar.gz msys2安装好后不需要装mingw和其他东西,只需要安装make(见下方图片;我们编译工具链会用...至于二进制兼容方面考虑,两种做法都不是太好) 代码修改完成后我们使用msys2编译 首先是需要把编译器设置为msvc,这个步骤通过使用vs的命令行工具即可,如下图 ?...打开vs的编译工具 然后是设置msys2继承环境变量(这样make时才能找到cl/link) ? 设置msys继承环境变量 ?...cmake和make语句 编译完成后头文件和dll在host文件夹内(编译产出的dll也是clear的,不依赖msvc**.dll) ?

    3.8K11
    领券