【问题标题】:fatal error LNK1104: cannot open file 'kernel32.lib' in assembly致命错误 LNK1104:无法在程序集中打开文件“kernel32.lib”
【发布时间】:2016-11-21 14:18:45
【问题描述】:

我正在尝试编写我的第一个汇编语言“Hello World”,但我不断收到以下错误消息:

致命错误 LNK1104:无法打开文件 'kernel32.lib'

我是否安装了错误的链接器或者我的代码有什么问题?这是我的代码

.386
.model flat, stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib

.data

    HelloWorld db "Hello World!", 0

.code
start:

    invoke StdOut, addr HelloWorld
    invoke ExitProcess, 0

end start

【问题讨论】:

  • 代码没问题。它在这里就像一个魅力(WinXP)。尝试从此处使用原始安装程序重新安装 MASM32:masm32.com
  • 试试includelib <c:\masm32\lib\kernel32.lib>

标签: assembly x86 masm


【解决方案1】:

C:\masm32\bin文件夹中的cmd中试试这个:

link /SUBSYSTEM:WINDOWS /LIBPATH:c:\masm32\lib  file.obj

【讨论】:

    【解决方案2】:

    我在 Windows 10 上运行 masm32,这段代码完美链接 只需要包含一些库

    .486                         
    .model flat, stdcall                   
    option casemap :none                    
    
    include \masm32\include\windows.inc     
    include \masm32\macros\macros.asm       
    
    include \masm32\include\masm32.inc
    include \masm32\include\gdi32.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    
    includelib \masm32\lib\masm32.lib
    includelib \masm32\lib\gdi32.lib
    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    

    .数据

    HelloWorld db "Hello World!", 0
    

    .code 开始:

    invoke StdOut, addr HelloWorld
    invoke ExitProcess, 0
    

    结束开始

    【讨论】:

      【解决方案3】:

      尝试将项目文件保存在包含汇编程序的同一目录中

      【讨论】:

        猜你喜欢
        • 2015-03-02
        • 1970-01-01
        • 2016-02-09
        • 1970-01-01
        • 1970-01-01
        • 2011-03-26
        • 1970-01-01
        • 2021-11-11
        • 1970-01-01
        相关资源
        最近更新 更多