使用Visual Studio时出现C++编译错误(LNK1120和LNK2019)

4

我是C++新手,需要帮助解决一个非常基础的程序。

背景信息: 最近我购买了罗技G19s键盘,它有一个小的彩色液晶屏幕。你可以使用C++编写这个键盘的应用程序。所以我决定尝试一下,写一些Hello World。虽然我是C++新手,但这不应该很难,然而事实证明这真是让人痛苦!

问题: 当我编译我的小型Hello World程序时,我得到了2个错误:LNK1120和LNK2019,没有任何其他信息。以下是我的代码:

#pragma comment(lib, "LogitechLcd.lib")
#include "LogitechLcd.h"

int main() {
    LogiLcdInit(L"Hello World", LOGI_LCD_TYPE_COLOR);
    while (true) {
        LogiLcdUpdate();
        LogiLcdColorSetText(4, L"Hello G19s", 255, 0, 0);
    }
    LogiLcdShutdown();
    return 0;
}

这里是LogitechLcd.h (pastebin.com)
当我使用Visual Studio Professional 2013进行编译时,出现了上述错误。有人能帮我解决一下问题吗?如果可能的话,请解释一下为什么它不起作用。
编辑: 我已经让它有点运行了! Viusal Studio找不到lib,所以我必须将它放在项目文件夹中。非常愚蠢的错误!

这些不是编译器错误,而是链接器错误(LNK = LINKER或LINK)。请确保可以找到文件“LogitechLcd.lib”。 - dyp
1
以下是与编译器链接相关的错误信息。它找不到符号。你可能没有将库的路径传递给链接器。 - TimDave
好的,这是精确的输出: - ionree
这与[undefined reference to `WinMain@16'](https://dev59.com/9W435IYBdhLWcg3wtSYV)有关。也许那里的答案可以帮助你。 - Sebastian Dressler
正如编辑中所述,我终于让它工作了。 - ionree
显示剩余2条评论
2个回答

2
听起来你把项目设置成了错误的类型。
看看这里
还有这里

我的项目被设置为win32应用程序,如果我没有完全弄错的话,这意味着它是本地c++。 PS:编译器也设置为32位。 - ionree

1

这是一个控制台项目吗?(如果您不知道,请查看项目属性>链接器>系统>子系统)。这应该是第一件出现的事情。如果是,将您的主函数设置为wmain函数。如果是Win32项目,则可能是WinMain(16),不确定。

希望对您有所帮助。


如果你错过了,OP在评论中输入了以下内容:“_如编辑中所述,我终于让它工作了_” Jan 3 '14 at 14:52 - Sᴀᴍ Onᴇᴌᴀ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接