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

使用mingw32获取“未定义的引用”,但使用mingw64没有链接器错误,为什么?

使用mingw32获取“未定义的引用”,但使用mingw64没有链接器错误的原因是因为mingw32和mingw64是两个不同的编译器版本,它们使用的是不同的运行时库和链接器。

mingw32是32位的编译器,而mingw64是64位的编译器。在编译过程中,如果使用了某个库或者函数,但是没有正确链接到对应的库文件,就会出现“未定义的引用”错误。这通常是由于编译器无法找到对应的库文件或者库文件的版本不匹配导致的。

mingw64相比于mingw32具有更好的兼容性和性能,因为64位系统可以更好地利用计算资源。所以在使用mingw64编译时,可能会自动链接到正确的库文件,从而避免了链接器错误。

为了解决使用mingw32获取“未定义的引用”的问题,可以尝试以下几个步骤:

  1. 确保使用的是正确版本的库文件,包括头文件和链接库文件。可以检查库文件的路径和版本是否与编译器匹配。
  2. 检查编译器的设置,确保编译器能够正确地搜索和链接库文件。可以通过设置编译器的环境变量或者命令行参数来指定库文件的路径。
  3. 如果仍然无法解决问题,可以尝试使用mingw64编译器来替代mingw32编译器。这样可能会自动解决链接器错误。

总之,使用mingw32获取“未定义的引用”,但使用mingw64没有链接器错误的原因是编译器版本和库文件的匹配问题。通过检查库文件的路径和版本,设置编译器的环境变量,或者使用mingw64编译器可以解决这个问题。

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

相关·内容

​hostguest nativelangsys及uniform cui cross compile system

比如,就像host os,guest os有32,64运行时藩离一样(colinux 32/64),编译也要克服这些。...作为跨OS编译mingw,它里面的以前只有mingw32只能编译32位windows程序。...IDE平台,server core as guest负责运行就可以,但是现实情况却是:host2guest大都没有支持,比如windows 2 linuxmingw64实现往往没有反过来丰富。...在这里,我们选择用二个简单例子来说明,描述host2guestmingw64 cross compile toolchain使用,而其实,读者应该尝试组建自己toolchain,且使用复杂开源程序来测试...不过版本比较老,这也是为什么要自己编译原因之一,自己编译方法可以参照colinuxcross build脚本,也可以参照vityan gcc -v等,不过自己编译据说有好多坑。

64430
  • 重学C语言环境搭建

    以前很多C语言内容都忘记了,所以记此笔记,从学C语言。 笔记使用Clion作为IDE,MinGW作为C编译。支持window,linux,和Mac玩。...引用站外地址 Clion 官方下载地址 先下载下来 安装MSYS2 MSYS2 也是一个包管理软件,用来安装环境非常简单。推荐使用。...引用站外地址 MSYS2 官方下载地址 进入官网,下载安装包即可。 安装包一路下一步即可,我是安装在D盘。 进入:D:\msys64,启动msys2.exe。...有mingw64mingw32,64位系统用mingw64就好,按照下图配置好构建工具和编译就行。 然后设置CMake,默认是Debug,如果没有,手动添加就是了。...这儿是可以设置多个编译环境,例如使用微软MSVC,当然了,我们只安装了MinGW,用这个就好了。

    77620

    MinGW32和64位交叉编译环境安装和使用「建议收藏」

    MinGW32和64位交叉编译环境安装和使用 原文出处: CompileGraphics Magick, Boost, Botan and QT with MinGW64 under Windows...解压后得到: C:\DEVPACK\MinGW\mingw32\ C:\DEVPACK\MinGW\mingw64\ 另外添加3个目录如下,用于存放特定工具链: C:\DEVPACK\MinGW\opt...\ /mingw32 C:\DEVPACK\MinGW\mingw64\ /mingw64 C:\DEVPACK\MinGW\opt\ /opt C:\DEVPACK\MinGW...项目属性里面,链接->高级里面选择:MachineX64 (/MACHINE:X64)。常规->字符集->未设置。经过这样配置,就可以编译32 / 64位windows程序了。...在我写作此文过程中,参考了文章开头链接,但是全部内容并不是简单翻译,而是我亲自实践总结。 谢谢!

    7.6K10

    ege安装教程(第二银河配置要求)

    把时间花在EGE库使用学习上,而不是浪费在安装这件事情上。 注意带上错误信息截图, 并说明自己用什么编译,按照哪个教程配置,配置到了哪一步。 配置出错,一般是文件放置目录不对,链接参数写错。...如果你们编译参数里面没有,请在后面多添加一个 -lwinmm,否则使用MUSIC类时会出现 链接错误。...说明链接命令写错了,应该是 -lgraphics 如果配置和库已经对应,那么请检查一下是否将库文件放错了位置 未定义引用(undefined reference to xxx) 链接错误,...,第一个即为默认编译   对于安装了多个编译,可以在 Toolchain 里设置一下具体使用编译,原设置是使用默认编译。...lib 使用lib/mingw64库文件。

    6.7K21

    Dev-C++ FAQ

    使用过程中踩坑记录。 什么是Dev-C++ 百度百科dev词条描述 Dev-C++是一个Windows下C和C++程序集成开发环境。它使用MingW32/GCC编译,遵循C/C++标准。...开发环境包括多页面窗口、工程编辑以及调试等,在工程编辑中集合了编辑、编译、连接程序和执行程序,提供高亮度语法显示,以减少编辑错误,还有完善调试功能,能够适合初学者与编程高手不同需求,是学习...它集合了功能强大源码编辑MingW64/TDM-GCC编译、GDB调试和AStyle格式整理等众多自由软件,适合于在教学中供C/C++语言初学者使用,也适合于非商业级普通开发者使用。...为什么选择Dev-C++ 正如百度百科中描述,使用Dev-C++更多是C/C++语言初学者。...链接库 进入参数 在链接下面的文本框中添加链接参数,例如:-luuid,多个库使用空格或换行分开。

    2.1K00

    omnet++ 中c++调用python常见错误和解决

    1、错误和解决:错误1:undefined reference to '_imp__Py_Initialize':报错原因:没有使用 32 位 python37.lib 或者是没有在编译时候引用 python37...错误2:ld.exe: cannot find -lpython37.lib:报错原因:没有正确引用 python37.lib 或者没有 python37.lib 这个文件,应该直接使用 -lpython37...解决错误1和2:1、使用 32 位 python。...)错误3:应用程序无法正常启动0xc000007b报错原因:没有使用 32 位 python,(也可能环境变量中32位被前面的覆盖了)错误4:找不到 ibgcc_s_dw2-1.dll:报错原因:...解决错误3和4:1、环境变量一定是32位mingw下mingw32bin,检查有没有被覆盖,我就是这样被坑了好久。

    50160

    vscode一键配置CC++多个C及CPP文件编译与tasks.json和launch.json原理

    具体配置 我这里配置都没有用到VS相关,用是跨平台g++、gcc,在Windows上面就是安装MinGW,我用MinGW64(gcc version 8.1.0 x86_64)。...(2022-10-21更新) 如果你使用是MSVC编译,道理都是大同小异,MSVC我也配置过,都是可以。...下面是我写一个简单例子,供大家参考(文章教程是gcc,这里仅供想使用MSVC编译小伙伴查看,gcc也可以参考部分内容),不使用这个可以跳过。...VSCode-C/C++项目一键创建程序( 2022-10-07更,修复了配置小错误和界面提示错误) 因为只是个小工具,所以没有考虑任何美化,如果生成失败了,自主检查一下填写路径是否正确,路径结尾是否有多余空格等...1.主界面 可以自动获取编译路径,如果不对可以手动更改。

    7K40

    QT软件开发:基于libVLC内核设计视频播放

    这种架构为开发人员(VLC 开发人员和使用该库开发人员)提供了极大灵活性。它允许开发人员使用VLC功能创建范围广泛多媒体应用程序。 播放每种媒体文件格式、每种编解码和每种流媒体协议。...每个平台上硬件和高效解码,高达 8K。 远程文件系统(SMB、FTP、SFTP、NFS...)和服务(UPnP、DLNA)网络浏览。 使用菜单导航播放音频 CD、DVD 和蓝光。...社区绑定 vlcj用于使用 Java 桌面平台。 python-vlc用于使用 Python 桌面平台。 vlc-rs使用 Rust 编程语言。 libvlc-go使用 Go 编程语言。...,如果没有默认路径,就使用当前C盘根目录 if(open_dir_path.isEmpty()) { open_dir_path...**tracks; //正常视频获取数量是2.

    2.9K70

    mingw(gcc)编译openjpeg

    https://blog.csdn.net/10km/article/details/50580841 openjpeg是C语言实现开源jpeg2000图像格式编码/解码,github...官方提供二进制文件只提供了dll,如果想要将代码静态编译到项目中需要自己下载源代码编译。...-DBUILD_SHARED_LIBS=OFF 指定创建静态链接库.lib,默认是ON,生成dll openjpeg提供CMakeList.txt不能同时创建静态库和动态库,所以你既想要静态库...当生成动态库时候,还可以参加参数 -DCMAKE_GNUtoMS=ON 生成MSVC格式导入库(import library .lib文件)。这样MSVC就可以直接使用GCC编译动态库了。...64,所以生成目标代码也是64位,如果要生成32位目标代码,需要安装32位编译就是(mingw32)。

    1.9K20

    【C语言】解决C语言报错:Undefined Reference

    简介 Undefined Reference(未定义引用)是C语言编译过程中常见错误之一,通常在链接阶段出现。当编译无法找到函数或变量定义时,会报告未定义引用错误。...什么是Undefined Reference Undefined Reference,即未定义引用,是指在编译过程中,链接无法找到被引用函数或变量定义。...编译在编译每个源文件时生成目标文件(.o文件),链接负责将这些目标文件链接成最终可执行文件。如果链接找不到某个引用符号定义,就会产生未定义引用错误。...启用编译警告选项:在编译时启用编译警告选项,可以提前发现未定义引用等问题。...0; } 分析与解决: 此例中,mylib_function函数在mylib库中定义,编译时未链接该库,导致未定义引用错误

    56920

    1000多个项目中十大JavaScript错误以及如何避免

    这是在 Safari 中读取属性或调用未定义对象上方法时发生错误,这与 Chrome 上述错误基本相同,只是 Safari 使用不同错误消息。 ? 3....有趣是,在 JavaScript 中,null 和 undefined 是两种不同类型,这就是为什么会出现两个不同错误消息。未定义通常是一个尚未分配变量,而 null 则表示该值为空。...这是浏览一种安全措施,主要用于防止跨域传递数据情况出现。 要获取真实错误消息,需要执行以下操作: 1.   ...符合旧版浏览解决方案是以变量方式简单地将引用保存在 this 中,然后通过闭包继承。...this.timer = setTimeout(function(){ self.clearBoard(); }, 0); }; 或者,在较新浏览中,使用 bind(  ) 方法传递引用

    8.3K40

    JavaScrip最容易犯十大错误及其避免方法()

    ,在JavaScript中,null和undefined不一样,这就是为什么我们看到两个不同错误消息。...这相当于Chrome中错误“TypeError:’undefined’不是函数”。 是的,不同浏览可以针对相同逻辑错误具有不同错误消息。...ReferenceError: event is not defined 当您尝试访问未定义或超出当前范围变量时,将引发此错误。 您可以在Chrome浏览中轻松测试它。...如果使用strict编译选项,一个好静态类型检查系统(如Typescript)可以帮助您避免它们。如果预期类型未定义,它可以警告您。...即使没有Typescript,在使用它们之前使用guard子句来检查对象是否未定义也是有帮助

    16710

    连接工具错误lnk2019_2019年十大语文错误

    错误消息后跟严重错误LNK1120。 若要修复错误 LNK1120,必须先修复所有 LNK2001 和 LNK2019 错误。 可能原因 有多种方法可获取错误。...所有这些都涉及到链接无法解析函数或变量引用,或查找定义。 编译可以确定符号未声明时间,但无法判断符号未定义时间。 这是因为定义可能位于不同源文件或库中。...如果某个符号被引用但从未定义,则链接将生成一个无法解析 :::no-loc(extern)::: al 符号错误。...:::no-loc(static):::无法以内联方式定义类成员必须通过使用其完全限定名称在一个源文件中进行定义。 如果根本没有定义此方法,则链接会生成 LNK2019。...但是,从 Visual Studio 2010 开始,Visual Studio 需要一个项目到项目的引用。 如果你项目没有项目到项目的引用,则可能会收到此链接错误

    4.1K20

    arm-gcc各版本区别

    \n”); return 0; } 使用 arm-linux-gnueabihf-gcc 编译,使用“-v”选项以获取更详细信息: # arm-linux-gnueabihf-gcc -v mfloat.c...2)链接库文件(libc) 在hello.c中使用了printf函数,是在libc中实现 ? 注意:-L 是指明链接路径,-l指明链接库文件。...分别使用命令: gcc -c -o hello.o hello.c gcc -v -nostdlib -o hello hello.o 编译结果如下,提示错误: ?...4.静态连接和动态连接 解析: 1)动态链接使用动态链接库进行链接库进行链接,生成程序在执行时候需要加载所需要动态库才能运行,动态连接生成程序体积体积较小,但是必须依赖所需动态库,否则无法运行...2)静态链接使用静态库进行链接,生成程序包含运行所需要全部库,可以直接运行,不过静态链接生成程序体积大。 例子: 分别使用动态库链接和静态库链接 ? 额,此时我暴躁了...不是我想要结果.

    3.4K20

    Rust避坑现代C++悬垂指针

    指针所指向内存已经被释放(如通过delete操作),指针本身没有被修改,仍然指向已经释放内存区域。...指针所指向内存已经被分配给其他数据(如在堆上重新分配),指针没有被更新,仍然指向旧内存地址。指针本身所指向数据,是局部变量所持有的数据,在局部变量超出其作用域后仍然被使用。...再次解引用(dereference)这样指针会导致未定义行为。这是一种常见C/C++编程错误,如下代码所示。...引用有效性仍然受限于 smart_ptr 生存期,这就是为什么在后面 smart_ptr 离开作用域后使用 reference 会导致编译错误。...这个错误发生在第8行,借用检查检测到潜在悬垂指针。这个输出体现了Rust核心优势,即通过借用检查在编译时捕获潜在内存安全问题,而不是在运行时产生未定义行为。

    55861

    1000个项目中前10名JavaScript错误介绍

    如果还没有,请继续阅读,因为我们将在下面覆盖更多相关错误示例。 2....这与 1 中提到 Chrome 错误基本相同, Safari 使用了不同错误消息提示语。 3....有趣是,在 JavaScript 中,null 和 undefined 是不一样,这就是为什么我们看到两个不同错误信息。...Uncaught TypeError: Cannot set property 当我们尝试访问一个未定义变量时,它总是返回 undefined,我们不能获取或设置任何未定义属性。...如果在使用事件处理系统时遇到此错误,请确保使用传入事件对象作为参数。像 IE 这样旧浏览提供了一个全局变量事件,并不是所有浏览都支持。像 jQuery 这样库试图规范化这种行为。

    6.2K10

    10 种最常见 Javascript 错误

    这与 1 中提到 Chrome 错误基本相同, Safari 使用了不同错误消息提示语。 ? 3....在现实世界例子中,这种错误可能发生一种场景是:如果在加载元素之前尝试在 JavaScript 中使用元素。 因为 DOM API 对于空白对象引用返回值为 null。...this.timer = setTimeout(function(){ self.clearBoard(); }, 0); }; 或者,在较新浏览中,可以使用bind()方法传递适当引用...Uncaught TypeError: Cannot set property 当我们尝试访问一个未定义变量时,它总是返回 undefined,我们不能获取或设置任何未定义属性。...如果在使用事件处理系统时遇到此错误,请确保使用传入事件对象作为参数。像 IE 这样旧浏览提供了一个全局变量事件,并不是所有浏览都支持。像 jQuery 这样库试图规范化这种行为。

    6.8K80
    领券