编写音频播放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

相关文章

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

使用Python实现矢量路径的压缩、解压与可视化

《使用Python实现矢量路径的压缩、解压与可视化》在图形设计和Web开发中,矢量路径数据的高效存储与传输至关重要,本文将通过一个Python示例,展示如何将复杂的矢量路径命令序列压缩为JSON格式,... 目录引言核心功能概述1. 路径命令解析2. 路径数据压缩3. 路径数据解压4. 可视化代码实现详解1