使用SDL库时出现链接器错误:_main已在main.obj中定义
Linker Error when using the SDL Library: _main already defined in main.obj
所以我已经知道为什么会发生这种错误,在SDL_main.h文件中创建了一个'main'宏,这会导致实际的main函数出现问题。
只是没有一个明显的解决办法对我有帮助。我试过了:
-
用(int argc,char*argv[](定义我的主函数。
-
尝试使用C链接,如SDL_main.h中的注释所示:
* The application's main() function must be called with C linkage, * and should be declared like this: * code * #ifdef __cplusplus * extern "C" * #endif * int main(int argc, char *argv[]) * { * } * endcode
-
尝试不设防的主要。
为了让主功能再次正常工作,我还能尝试其他技巧吗?
也可以在main.cpp
文件的顶部尝试:
#define SDL_MAIN_HANDLED
这应该会导致SDL跳过其所有main
的废话。
请注意,在包含SDL
:之前需要进行此操作
#define SDL_MAIN_HANDLED
#include "SDL2/SDL.h"
相关文章:
- 拥有映射的现代方法,该映射可以指向或引用已在堆栈上分配的不同类型的数据
- 如何使用C++确定应用程序是否已在窗口中启动?
- 我在主函数的左括号上不断收到错误,消息为obj\Debug\main.o||在函数"ZN11linked_listC1Ev"中:|
- float* 已在 Gameobject.obj 中定义
- "Main"已在当前范围内声明
- 更改已在运行的程序的变量值
- 为什么在函数中 'int main()' -> 's' 可以在此函数中使用单位化?
- 如何知道指针是否已在其他地方释放
- 无法编译代码,因为它已在 C++11 中弃用
- C++ LNK 2005 错误"已在 .obj 中定义
- 如何将超类的受保护成员访问到其派生类. 如果已在派生类中声明了具有相同名称的函数?
- 带有 NORM 的 ZeroMQ - 地址已在使用 错误被抛出在第二个 .bind() 上 - 为什么?
- C++程序将进程置于前台(如果已在运行),否则创建一个新进程
- 变量已在 .obj 中定义;这是怎么回事?
- 客户端套接字是可绑定的,但不可连接,因为已在使用中
- 检查数字是否已在数组中的程序
- 已在main.obj中定义了双精度
- 已在函数中初始化,但未在main中初始化
- LNK2005错误,已在main.obj中定义
- 使用SDL库时出现链接器错误:_main已在main.obj中定义