编写音频播放SDL使用示例时,报MSVCRT.lib(exe_main.obj) : error LNK2001: 无法解析的外部符号 main

本文主要是介绍编写音频播放SDL使用示例时,报MSVCRT.lib(exe_main.obj) : error LNK2001: 无法解析的外部符号 main,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在弄本地音视频录制,需要将本地桌面,麦克风声音和系统声音混合在一起,写入文件。
本人先是将麦克风声音和系统声音混合在一起,然后再和桌面视频合成一起,结果生成的文件里面,杂音特别大,为此,想在程序里面,在麦克风声音和系统声音混合后,直接程序里面播放,这需要用到SDL。

本人直接在官网下载的SDL,地址如下:
http://www.libsdl.org/download-2.0.php

在这里插入图片描述

然后网上找了个小demo进行练习,头文件包含SDL.h,链接的库是SDL2.lib。
编译链接时,一直报:1>MSVCRT.lib(exe_main.obj) : error LNK2001: 无法解析的外部符号 main。
真是见了鬼了,main函数很明显是存在的,后来发现原来main函数,也可以被#define处理。
加上SDL_MAIN_HANDLED宏定义就可以通过了。

下面写个简单的小demo(控制台程序)来展示这种事情

cpp文件

#include "stdafx.h"
#include <iostream>int main()
{std::cout << "Hello World!\n";return 0;
}

stdafx.h头文件里面的内容如下:

#pragma once#define main my_main

最终编译时链接报错:
1>------ 已启动生成: 项目: ReplaceMainTest, 配置: Release x64 ------
1>ReplaceMainTest.cpp
1>MSVCRT.lib(exe_main.obj) : error LNK2001: 无法解析的外部符号 main
1>E:\learn\c++\win32\ReplaceMainTest\x64\Release\ReplaceMainTest.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>已完成生成项目“ReplaceMainTest.vcxproj”的操作 - 失败。
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

这篇关于编写音频播放SDL使用示例时,报MSVCRT.lib(exe_main.obj) : error LNK2001: 无法解析的外部符号 main的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/941019

相关文章

Modbus TCP转CAN网关在不同行业中的应用以及其使用上的优势

倍讯科技Modbus TCP转CAN网关通常被用于工业自动化领域,特别是在需要连接现有Modbus TCP网络和CAN总线设备的场景中。以下是该网关在不同行业中的应用以及其使用上的优势: 1. 制造业:    - 在制造业中,各种类型的设备和机器通常使用不同的通信协议。倍讯科技Modbus TCP转CAN网关可以帮助连接控制系统和现场设备,实现数据交换和控制,从而提高生产线的灵活性和效率。

Ableton Max For Live Essentials 基础音频MIDI效果合成控制拓展包

格式:ALP 要求:Windows / MacOS 要求:Live(9.5 / 10.0或更高版本) 大小: 3.27GB Max For Live Essentials是在Max Live中制作的用于Ableton Live 9/10的音频、MIDI效果、合成器和控制器的集合。 英文说明: Max for Live Essentials is a collection of audi

Ableton Max for Live Collection ALP 音频MIDI效果合成控制设备拓展合集

格式: Ableton/ALP 参数: 24 bit 48 kHz stereo 系统: Windows/MacOS. 要求: Live (9.5 / 10.0 或更新版本) 大小: 6GB Max for Live 是在Max Live中制作的,用于Ableton Live 9-10的音频和MIDI效果,合成器和控制设备的集合。 包含以下内容(随时更新): Ableton & Martin

【多电压流程 Multivoltage Flow】- 5.特定工具使用建议(6.Formality)

使用Formality进行形式验证 Formality支持具有低功耗特性的功能等效性检查,如时钟门控、多阈值电压(multiple-Vt)、多电压供电、电源门控以及动态电压和频率缩放。Formality能够识别低功耗单元,例如隔离单元、电平转换器、始终开启单元、保持寄存器和电源门。 Formality支持使用UPF对低功耗设计数据进行验证,如图71所示。 图71 带UPF的等价性检查

优先队列priority_queue的特性与使用

队列与优先队列 优先队列是队列的一种。两者的区别如下: 普通队列先进先出优先队列根据优先级决定谁先出  从模板参数上去看优先队列比队列多了一个模板类less,这个less主要是为了实现伪函数,而这个仿函数则是规定优先级高低的规则。优先规则也可以根据需要进行自定义。      int main() {//完整地写出来如下queue<int, vector<int>> q1;priorit

Zynq开发-使用PYNQ快速入门摄像头MIPI驱动(OV5640)-overlay设计

目录 1. 简介 2. Overlay 设计 2.1 总体设计 2.2 MIPI 子系统 2.3 去马赛克 2.4 AXI_IIC 3. 注意事项 4. 总结 1. 简介 本文是关于《Zynq开发-使用PYNQ快速入门摄像头MIPI驱动(OV5640)-CSDN博客》的博客文章,涉及了overlay设计的Vivado工程细节。在使用PYNQ调试MIPI驱动之前,需要搭建

【APM】在Kubernetes中,使用Helm安装loki-distributed 2.9.6

1、Loki简介 Grafana Loki 是一个开源的云原生日志聚合和分析系统,由 Grafana Labs 开发并维护。Loki 专注于为大规模的日志处理提供经济高效且易于管理的解决方案,尤其适用于微服务架构以及容器化和分布式环境。 以下是 Loki 的核心特性与设计原则: 标签驱动存储: Loki 不对完整的日志内容进行索引,而是仅对每个日志流(log stream)定义的一组标签(

使用System.Drawing进行几何图形绘制

1.概要 使用System.Drawing进行几何图形绘制 System.Drawing 是.NET框架中的一个命名空间,提供了基本的绘图功能,包括绘制几何图形(如矩形、椭圆、线条等)。它通常用于Windows Forms应用程序中的绘图。你可以使用 Graphics 类来绘制几何图形。 2.代码 using System;using System.Drawing;using Syst

2024-3-23 青少年软件编程(C语言)等考(四级)解析

2024-3-23 青少年软件编程(C语言)等级考试试卷(四级)解析 1、最长上升子序列 一个数的序列bi,当b1 < b2 < ... < bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1, a2, ..., aN),我们可以得到一些上升的子序列(ai1, ai2, ..., aiK),这里1 <= i1 < i2 < ... < iK <= N。比如,对于序列(1, 7, 3,

项目经理必须要学会使用原型图工具或者别的必要工具吗

项目经理不一定必须学会使用原型图工具或其他特定技术工具,但熟悉和掌握一些关键工具和技术无疑会提高他们的工作效率和项目管理能力。以下是关于项目经理是否需要学习使用原型图工具或其他必要工具的几点考虑: 项目需求: 如果项目涉及产品设计、用户体验或界面开发,原型图工具(如Sketch、Figma、Axure等)会非常有用。这些工具可以帮助项目经理更好地理解用户需求,并与设计团队和开发团队有效沟通。如果