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

在cmake for MinGW中链接SDL1.2时,对‘`WinMain@16’的引用未定义

在cmake for MinGW中链接SDL1.2时,对‘WinMain@16’的引用未定义是一个常见的错误。这个错误通常发生在使用SDL1.2库时,因为SDL1.2默认使用WinMain作为程序的入口点,而不是标准的main函数。

要解决这个问题,你可以尝试以下几个步骤:

  1. 确保你的代码中包含了SDL.h头文件,并且链接了SDL1.2库。你可以使用以下命令来链接SDL1.2库:
  2. 确保你的代码中包含了SDL.h头文件,并且链接了SDL1.2库。你可以使用以下命令来链接SDL1.2库:
  3. 在你的代码中,将main函数改为WinMain函数,并添加相应的参数。WinMain函数是Windows平台上的入口点函数,它接受四个参数:HINSTANCE,HINSTANCE,LPSTR,int。你可以参考以下代码示例:
  4. 在你的代码中,将main函数改为WinMain函数,并添加相应的参数。WinMain函数是Windows平台上的入口点函数,它接受四个参数:HINSTANCE,HINSTANCE,LPSTR,int。你可以参考以下代码示例:
  5. 如果你仍然遇到未定义引用的错误,可能是因为你的项目缺少SDL1.2库的链接。你可以尝试手动添加SDL1.2库的链接。在CMakeLists.txt文件中,使用以下命令来链接SDL1.2库:
  6. 如果你仍然遇到未定义引用的错误,可能是因为你的项目缺少SDL1.2库的链接。你可以尝试手动添加SDL1.2库的链接。在CMakeLists.txt文件中,使用以下命令来链接SDL1.2库:

SDL(Simple DirectMedia Layer)是一个跨平台的多媒体开发库,它提供了对音频、视频、图形、输入设备等的抽象接口,方便开发者进行游戏和多媒体应用的开发。SDL1.2是SDL的旧版本,已经不再维护,推荐使用SDL2。

SDL1.2的应用场景包括游戏开发、多媒体应用开发等。如果你想在腾讯云上使用SDL1.2进行开发,你可以考虑使用云服务器CVM来搭建开发环境,并选择适合的操作系统和配置。腾讯云的云服务器CVM提供了多种规格和配置选择,满足不同开发需求。

腾讯云产品中与游戏开发相关的产品包括云游戏引擎GSE(Game Server Engine)和云游戏解决方案GaaS(Game as a Service)。你可以通过以下链接了解更多关于腾讯云游戏开发相关产品的信息:

希望以上信息能帮助你解决问题,如果还有其他疑问,请随时提问。

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

相关·内容

Windows下C++使用thread无法识别thread和mutex相关库解决

问题描述 今天我Windows下打算尝试C++多线程编程,CLion上进行编码。...(fix available) 问题解决过程 因为thread和mutex是C++11才引入,所以一开始考虑是不是CMakeList上没有加编译选项,于是加上 set(CMAKE_CXX_FLAGS...后来受到博客CLion安装mingw并配置以支持c++11多线程编程启发,重新安装mingw编译器,但是不成功。...又看到博客mingw-w64安装支持c++11thread(windows下)操作,发现关键是安装mingw需要将Thread选项设为posix。重新安装mingw解决问题。 ?...总结 不能使用thread是因为mingw编译器不支持thread,需要重新安装mingw,安装方法引用两篇博客里都有。同时需要确保建立工程使用是C++11及以上标准。

3.5K20

Qmake VS Cmake

Using CMake to Build Qt Projects 一文说: 简单Qt工程,采用 qmake 复杂度超过 qmake 处理能力,采用 cmake 尽管如此,如果简单Qt工程都不知道怎么用...,用 QT4_WRAP_CPP 处理 生成文件放入变量 example_MOCS ,最后一块链接到可执行程序 需要 uic 文件,用 QT4_WRAP_UI 处理 Windows 因为windows...) MVSC 中使用 rc.exe .rc 文件进行处理 MinGW 中使用 windres.exe 处理 .rc 文件 qmake TARGET = example TEMPLATE = lib...资源文件,使用 QT4_ADD_RESOURCES 来调用rcc进行预处理 Windows 资源文件,直接和源文件一样,添加到列表即可。...只是: MinGW 下仅仅这么做还不行,上面的 MinGW 块用来修复这个问题 Debug 与 Release qmake 使用 qmake ,可以 pro 文件内分别为两种模式设置不同选项

1.1K10
  • 关于编译重要概念总结

    ,但是日后碰到这些问题仍旧一头雾水。...gcc / g++ gcc是GCCGNU C Compiler(C 编译器) g++是GCCGNU C++ Compiler(C++编译器) 编译四个阶段 具体编译过程,主要分为四个阶段...将函数库相应代码组合到目标文件,汇编文件和系统库文件链接起来,生成特定平台可执行程序。 最早操作系统,是没有链接,由加载器loader进行工作,所以ld命名由此而来。...对于 .c和.cpp文件,g++则统一当做cpp文件编译 使用g++编译文件,g++会自动链接标准库STL,而gcc不会自动链接STL gcc在编译C文件,可使用预定义宏是比较少...C++ 11 C++引入了对象移动、右值引用、lamba表达式(函数式编程)、编译类型识别(auto)、别名模板以及很多新型关键词(如nullptr、decltype、constexpr)等现代编程语言常具备能力

    95420

    程序员C语言快速上手——工程篇(十三)

    目标顶格写,而command前面则必须有一个制表符(即Tab键) 要想写Makefile文件,必须C语言编译链接阶段有基本了解,总的来说,就是将.c源码文件编译为.o目标文件,然后将.o文件链接为可执行程序...但是要注意,我们如果在Windows上执行以上简化版make,则会报错,这是因为Linux系统,cc命令会默认链接到gcc命令上,执行cc命令就是执行gcc命令,而我们Windows系统是没有...cmake -G "MinGW Makefiles" 要注意,以上命令直接在CMD命令行执行可能会报错,它需要一个sh环境,这里有两种解决办法 将sh.exe所在目录加入到环境变量,它位于MinGW...源码工程根目录下创建一个build文件夹,然后命令行里cd到build下,执行cmake ..或cmake -G "MinGW Makefiles" ..命令,此时会将所有的中间文件生成到build...,完成后build目录下即生成main.exe 当链接已经编译好,推荐使用find_library来查找库,因为link_directories命令传入相对路径,会直接将相对路径传给编译器,导致出现找不到问题

    3.1K30

    关于protobuf近期版本(v20v3.20+)和 gRPC v1.54版本某些编译环境下一些链接和编译问题

    protobuf 链接和符号问题 InternalMetadata::~InternalMetadata() 未定义 protobuf问题主要分两组,第一组报是 InternalMetadata:...这个类析构 MessageLite 这个类中被调用,在生成 .pb.cc 里是配有被直接调用。但是某些编译器会生成对它析构符号引用(可能也属于编译器BUG)。...这时候又会导致符号未定义。 我们发现问题环境是编译iOS版本,具体编译器版本号忘记了,好像是AppleClang 12或者AppleClang 13。... protobuf 生成代码,由于 .pb.cc 存在全局变量,我们也不能允许同一个全局变量多个动态库,否则会重复注册和执行构造析构函数。...有兴趣小伙伴也可以跟进。 gRPC 链接和编译问题 gRPC v1.54.0 链接符号问题 我们使用高版本编译器,会尽可能使用高版本STD标准。

    1.3K20

    cmake:find_package查找pthread for win32实现脚本

    官方也没有提供,所以如果在cmake要查找pthread for win32库,就得自己实现,我参照FindJPEG.cmake自己写了个查找脚本FindPTHREADW32。...cmake官方提供FindJPEG.cmake非常简单,只输出了include文件夹位置和JPEG库文件(JPEG_INCLUDE_DIR和JPEG_LIBRARIES),写FindPTHREADW32...,为了更方便引用库,输出PTHREADW32_INCLUDE_DIR和PTHREADW32_LIBRARY变量基础上,还提供了imported target:pthreadw32, 有了imported...target定义,cmake脚本引用库更加方便,示例如下: if(WIN32) find_package(PTHREADW32 REQUIRED) endif(WIN32) # 为${_target...============================= if(NOT WIN32) return() endif() # 检查编译器是否支持pthread如果支持就返回, # POSIX版本MinGW

    94210

    cmake:让mingw(gcc)生成MSVC可用dll(.lib)

    mingw(gcc)编译出来动态库(DLL)默认是没有MSVC连接动态库所需要lib文件(import library)。...关于MSVCDLL和LIB作用和区别,请参考这篇博文,讲得很透彻了–>《DLL和LIB区别》 那么如果MSVC要链接gcc生成DLL,却没有lib文件(import library)怎么办?...(这个变量用来初始化GNUtoMS属性) 所以,在用cmake生成Makefile,设置GNUtoMS就可以解决这个问题。...有两种途径: shell命令行方式 如下在命令行-D参数定义一个为BOOL类型CMAKE_GNUtoMS参数为ON,就指示在编译dll生成import library(.lib) cmake...CMAKE_GNUtoMS选项勾选,再点按钮生成Makefile 然后执行make编译项目的过程,生成dll时会输出下面的信息(前提是你安装了VC编译器)表明它在调用VClib

    3.6K20

    gloggflags:linux下用cmake通过MinGW-w64交叉编译生成windows版本静态库

    做交叉编译要指定toolchain文件 Toolchain-mingw.cmake # 设置交叉编译目标操作为windows SET(CMAKE_SYSTEM_NAME Windows) # 指定...SET(CMAKE_RC_COMPILER x86_64-w64-mingw32-windres) # 指定编译目标操作系统版本搜索根路径 SET(CMAKE_FIND_ROOT_PATH /.../bin/bash # cmake静态编译 glog 源码脚本 # author guyadong@gdface.net # 定义上面脚本编译gflags安装位置CMake文件夹位置 gflags_DIR...bug,BaseTsd.h是msvc一个头文件。...这是个一般编译器都提供系统头文件,gcc下这个文件名是全小写(basetsd.h),因为linux下文件名都区分大小写,所以会报错,找到报错位置 ($glog_root/src/logging.cc

    3.8K70

    xmake v2.3.7 发布, 新增 tinyc 和 emscripten 工具链支持

    现在,xmake v2.3.7 版本发布了,新版本,我们主要完善了 xmake 自身稳定性和兼容性,通过两个月不断迭代,修复了很多用户反馈各种使用问题,使用体验和稳定性有了很大提升。...另外,我们在这个版本也新增 TinyC 和 Emscripten (WebAssembly) 编译工具链支持。...-trybuild=cmake xmake 编译 mingw 程序: xmake f -p mingw --trybuild=cmake --mingw=/sdk/xxx xmake 我们只需要配置时候...pcre2 包,然后编译链接它,哪怕这个 pcre2 包是通过 autotools/cmake 维护。...xmake require --export 但是,之前版本对应一些存在依赖包,导出时候只会导出自身,它所有依赖是不会被导出,而这个版本,我们其进行了改进,将对应所有依赖包也进行了导出。

    1.3K10

    conan入门(十二):Windows NDK 编译 boost报错:CMake was unable to find a build program .... MinGW Makefile

    conan NDK 编译 boost报错:CMake was unable to find a build program corresponding to “MinGW Makefiles” 今天Windows...但我还是觉得不太,Android NDK交叉编译为什么需要MinGW(mingw64 )编译器呢?这不合理啊。...Conan issue找到了同款问题: 《Some CMake Settings Passed On With Build Missing on Cross Build #3884》 真正原因是没有指定...CMakeGENERATOR,导致某些库编译脚本误定义为MinGW Makefiles,下面是解决方法: 就是需要设置环境变量CONAN_CMAKE_GENERATOR为Unix Makefiles...:ndk_path=$android_ndk CONAN_CMAKE_GENERATOR与上面profileCONAN_CMAKE_TOOLCHAIN_FILE一样都是conan自定义环境变量,

    1.9K10

    windows系统构建golang+opencv环境

    第一步:安装mingw-w64 官网https://mingw-w64.org/ 但是下载链接很难找!...$GOPATH/src/gocv.io/x/gocv执行 ./win_build_opencv.cmd 但此方法下载极慢,走代理之后也遇到很多坑,并不实用。...cmake-gui 再按上述步骤操作即可Configure成功 接下来,搜索OPENCV_EXTRA_MODULES_PATH,并在该项填写之前cloneopencv_contrib/modules...注意:此过程预计耗时1小以上 第四步:go+opencv环境配置 gocv使用cgo来调用opencv库,本来按照官网说明是支持自定义位置,但是无论怎么做,都会说找不到静态库。...git-bash执行 mkdir -p /c/opencv cp -r YOUR_BUILD_PATH/install /c/opencv/ 最后将此路径加入到环境变量PATH即可 c:/opencv

    4.4K00

    使用MinGW编译OpenCV4源码与配置使用演示

    / 环境配置 安装好QT,CMake与OpenCV下载解压缩之后,首先到QT目录下,找到mingw编译工具bin目录,添加到系统环境变量中去,本人安装好QTmingw工具bin目录路径如下:...编译OpenCV源码主要分为如下几步: 01 cmake配置与生成 双击打开安装好cmake ?...然后执行下一个命令行参数 mingw32-make install 大概几十秒即可很快执行完成,执行完成之后你就会在这个目录得到编译好库与dll文件。...通过一个简单OpenCV读取图像,QTQLabe显示来验证上述编译好库可以使用。...直接通过QT Creator来新建一个QT Application程序,导入OpenCV库依赖(不知道怎么操作,请看结尾链接,通过视频学习即可!)

    2.2K20

    CC++ 构建系统,我用 xmake

    比如在构建之前,所有源文件进行一些预处理,构建之后,执行外部 gradle 命令进行后期打包,甚至我们还可以重写内部链接规则,实现深度定制编译,我们可以通过import 接口,导入内置 linker...扩展模块,实现复杂灵活链接过程。...不仅如此,我们开可以对定制化配置自建包依赖,例如: 使用调式版本依赖包 我们可以使用 debug 版本库,实现依赖库断点调试。...(Xrepo) 为了方便 XMake 自建仓库包管理,以及第三方包管理使用,我们也提供了独立 Xrepo cli 命令工具,来方便管理我们依赖包 我们可以使用这个工具,快速方便完成下面的管理操作...比如,我们 Windows 上使用 mingw-w64 工具链来编译 C/C++ 工程,只需要做如下配置即可。

    2.3K20

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

    具体配置 我这里配置都没有用到VS相关,用是跨平台g++、gcc,Windows上面就是安装MinGW,我用MinGW64(gcc version 8.1.0 x86_64)。...makefiles是用来组织管理不同文件编译链接顺序等用,可以简单理解为gcc/g++命令后面那一大串参数都放这里了,不用每次手敲,Cmake就是用来生成makefiles,因为makefiles靠手写也是很麻烦...上面的make命令就是MinGW安装目录下bin目录下mingw32-make.exe,tasks.json配置此命令。...": { "cwd": "${workspaceFolder}" }, "problemMatcher": [ "$gcc" ], }, // 任务二: Cmake // build 文件夹调用...(vscode可以安装Cmake插件,有两个,可以提示你怎么写这个文件,具体教程可以百度,基本用法很简单)要放在项目根目录下。

    7K40

    Windows 上搭建 MQTT 消息服务器

    目前市面上提供各类开源 MQTT 服务器,最常见是 Linux 平台为基础,对于 Windows 平台支持较少,即使支持也存在性能较弱、功能单一、版本兼容性等问题。...本文将以 NanoMQ 为例,演示如何通过安装包和源代码编译两种安装方式, Windows 系统快速搭建一个可以支持多协议连接物联网 MQTT 消息服务器。...源码编译及运行第二种方法是通过源代码进行编译安装,这种方法允许我们 Windows 上 NanoMQ 进行二次开发并增加自己需要功能。...目前 NanoMQ Windows 下编译需要 MinGW-w64、Make 和 CMake。...\nanomq\nanomq.exe broker startVisual Studio Code 编译需提前安装 VS Code C/C++ 和 CMake 相关插件图片图片图片点击选择编译工具链

    4.5K20

    『转』 opencv3.3.0 && opencv_contrib3.3.0 for AndroidNDK

    MinGW 下载MinGW,安装以后会有相应g++配置,这一步需要自行勾选,然后下载对应g++编译包即可,配置完成MinGW大概500MB左右。...需要配置path环境变量,命令行输入gcc -v检验配置是否正确 Ant 下载Ant,无需安装,解压后,配置path环境变量即可,可以命令行输入ant -v检验配置是否正确。...开始编译 进入到上面配置编译文件将要放置目录,进入命令行,输入: mingw32-make 如果一切顺利话,大概30分钟以后,会Build成功,接下来再输入: mingw32-make install...而提示找不到文件其实在我们本地目录.cache\xfeatures2d\boostdesc,如下所示: ?...最后,我们找一下生成静态链接库,J:\opencv-source\build\armeabi\lib\armeabi目录下。 ? 如果实在搞不定,最后静态库可以到这里下载。

    70210
    领券