将LabWindows/CVI 9项目迁移至VS时遇LNK2019错误求助
解决LabWindows/CVI 9迁移Visual Studio时LNK2019未解析_main符号的问题
确认项目是否定义标准
main函数
cviwmain.lib中的_WinMain@16是LabWindows/CVI封装的窗口入口,它会调用用户代码中的main函数作为实际程序入口。检查你的代码中是否存在符合C标准的main函数定义:int main(int argc, char *argv[]) { // 包含CVI初始化逻辑(如InitCVIRTE等) return 0; }若缺少该函数需补充;若已有,检查函数签名是否正确,避免参数类型或数量错误。
添加CVI相关预编译宏
在Visual Studio项目属性的C/C++ -> 预处理器 -> 预处理器定义中,添加CVI_MAIN宏。该宏会让CVI头文件正确声明main函数的预期接口,确保与cviwmain.lib中的调用匹配。补全链接库依赖
确保已链接LabWindows/CVI 9的核心库:- 保留已添加的
cviwmain.lib - 补充链接
cvi.lib和userint.lib(这两个是CVI基础运行时与UI库,可能之前遗漏)
这些库通常位于LabWindows/CVI安装目录的\lib文件夹下,比如C:\Program Files (x86)\National Instruments\CVI90\lib。
- 保留已添加的
修正项目子系统设置
打开项目属性的链接器 -> 系统 -> 子系统,确认设置为Windows (/SUBSYSTEM:WINDOWS)。LabWindows/CVI项目属于窗口应用,该设置会匹配_WinMain@16的入口要求。关于extwmain文件的说明
extwmain.obj是cviwmain.lib库中的编译单元,无需单独寻找extwmain.c或extwmain.lib文件。错误根源并非缺少该文件,而是代码或项目设置未满足cviwmain.lib对main函数的依赖要求。
内容的提问来源于stack exchange,提问作者Irving Juarez
相关产品推荐
相关产品推荐

