Visual Studio中的wxwidgets应用程序给出错误"LNK2019 unresolved external symbol"
wxwidgets app in Visual Studio gives error "LNK2019 unresolved external symbol"
我正在用C++和wxwidgets创建我的第一个程序。 当我尝试编译项目时,出现错误。
LNK2019 unresolved external symbol _main referenced in function "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ)
LNK1120 1 unresolved externals
我已经在Visual Studio中编译了wxwidgets。
编译完成后,我在Visual Studio中创建了一个新的C++空项目。
我转到配置并添加了包含目录:
配置属性 -> C/C++ -> 常规 -> 其他包含目录:
C:\Users\user\source\repos\wxWidgets\include;C:\Users\user\source\repos\wxWidgets\include\msvc
配置属性 -> 链接器 -> 其他库目录:
C:\Users\user\source\repos\wxWidgets\lib\vc_lib
然后我添加了 2 个类,cApp 和 cMain。
cApp.h
#pragma once
#include "wx/wx.h"
#include "cMain.h"
class cApp : public wxApp
{
public:
cApp();
~cApp();
private:
cMain* m_frame1 = nullptr;
public:
virtual bool OnInit();
};
卡普.cpp
#include "cApp.h"
wxIMPLEMENT_APP(cApp);
cApp::cApp() {
}
cApp::~cApp() {
}
bool cApp::OnInit() {
m_frame1 = new cMain();
m_frame1->Show();
return true;
}
cMain.h
#pragma once
#include "wx/wx.h"
class cMain : public wxFrame
{
public:
cMain();
~cMain();
};
c主.cpp
#include "cMain.h"
cMain::cMain() : wxFrame(nullptr, wxID_ANY, "MyProgram") {
}
cMain::~cMain() {
}
您有2 个问题(由于下面的评论而编辑后(以下问题:
- 您正在将应用程序构建为控制台模式应用程序,而不是 GUI 应用程序。虽然也可以从控制台应用程序使用 wxWidgets,但这可能不是您要做的,因此请确保"Linker|系统|项目属性对话框中的"子系统"选项设置为"Windows"。
-
代码中没有wxIMPLEMENT_APP(cApp);
宏。同样,完全可以避免它,但这可能不是您的目标,因此只需添加此行即可。此宏定义应用程序的main
或WinMain
,具体取决于平台。
链接器想要查找主入口点(main 是默认入口点(。Windows 体系结构上的 wxIMPLEMENT_APP(cApp( 宏具有WinMain入口点。
我有三个快速的解决方案。
-
您可以在宏wxIMPLEMENT_APP(cApp(之前编写宏#define WinMain main
( -
您可以告诉链接器入口点的名称( 在您的情况下,入口点的名称是WinMain(。
项目属性 -> 配置属性 ->链接器 -> 高级 对话框的右窗格中是入口点函数名称的位置。
- 您的 Visual Studio 项目安装了控制台子系统(此子系统查找默认的主入口点(。必须将"子系统"值更改为"窗口"(此子系统查找WinMain入口点(。
项目属性 -> 配置属性 -> 链接器 -> 系统",然后将"子系统"属性设置为Windows (/SUBSYSTEM:WINDOWS(
相关文章:
- 类C++中的函数问题(LNK2019和LNK1120错误)
- CppSQLite 抛出"LNK2019: unresolved external symbol"错误
- Visual Studio中的wxwidgets应用程序给出错误"LNK2019 unresolved external symbol"
- 什么会导致LNK2019 VisualStudio中的错误?
- 构建 Tensorflow 调试时出现错误LNK2019
- LNK2019 在文件中调用静态成员的方法时出错.cpp
- 错误LNK2019未解析的外部符号"public: __thiscall SLinkList<char>::SLinkList<char>(void)"
- "error LNK2019: unresolved external fatal"和"error LNK1120: 1 unresolved externals"
- 错误 : "error LNK2019: unresolved external symbol"
- 如何修复" Error LNK2019 : unresolved external symbol ... "
- 问题:"error LNK2019: unresolved external symbol"
- Visual Studio 2012 - 尝试包含 .lib 时"Error LNK2019 unresolved external symbol"
- 获取"error LNK2019: unresolved external symbol ... "
- 在Visual Studio中构建MATLAB mex文件会得到"LNK2019 unresolved external symbol _mexPrintf referenced in functio
- 生成错误"LNK2019: unresolved external symbol _WinMain@16"
- 我得到这个错误是Visual Studio C++ :: "error LNK2019: unresolved external symbol"
- 链接器错误"... .obj : error LNK2019: unresolved external symbol referenced in function"
- 获取"error LNK2019: unresolved external symbol"
- 6 "error LNK2019: unresolved external symbol"
- LNK2019:"Unresolved external symbol" with rapidjson