gpt4 book ai didi

c++ - Visual Studio 中的 wxwidgets 应用程序给出错误 "LNK2019 unresolved external symbol"

转载 作者:行者123 更新时间:2023-12-02 10:21:48 25 4
gpt4 key购买 nike

我用 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();
};

cApp.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();
};

cMain.cpp
#include "cMain.h"

cMain::cMain() : wxFrame(nullptr, wxID_ANY, "MyProgram") {

}

cMain::~cMain() {

}

最佳答案

您有 2 个问题(由于下面的评论在编辑后)以下问题:

  • 您将应用程序构建为控制台模式应用程序而不是 GUI 应用程序。虽然也可以从控制台应用程序使用 wxWidgets,但这可能不是您想要做的,因此请确保将项目属性对话框中的“链接器|系统|子系统”选项设置为“Windows”。
  • 您没有 wxIMPLEMENT_APP(cApp);代码中的宏。同样,完全有可能避免它,但这可能不是您的目标,因此只需添加此行。这个宏定义了 mainWinMain适用于您的应用程序,具体取决于平台。
  • 关于c++ - Visual Studio 中的 wxwidgets 应用程序给出错误 "LNK2019 unresolved external symbol",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59848356/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com