本文主要是介绍编写音频播放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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!