You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

链接C++代码与汇编代码时遭遇致命错误

MASM汇编与C++程序链接问题解决

汇编代码

.code

    option casemap:none

    public asmFunc

asmFunc PROC
    ret ;
asmFunc ENDP
        END

C++代码

#include <stdio.h>

extern "C" {
    void asmFunc(void);
}

int main() {
    printf("Calling asm main!");
    asmFunc();
    printf("Returned from asm!");
    return 0;
}

操作过程与错误信息

已通过ml64 /c first.asm成功汇编生成first.obj文件,但执行cl first.cpp first.asm链接时出现如下错误:

C:\Users\jarzi\Videos\Programs\c programs\assem1>cl first.cpp first.asm
Microsoft (R) C/C++ 优化编译器版本19.00.24215.1 for x64
(C) 微软公司。保留所有权利。

cl: 命令行警告 D9024: 无法识别源文件类型"first.asm",将使用目标文件
first.cpp
first.cpp(1): 致命错误 C1034: stdio.h:未指定包含文件搜索路径

问题分析与解决方法

问题原因

  1. cl编译器无法直接处理.asm源文件,你已经手动完成汇编得到first.obj,链接阶段应使用该目标文件而非asm源文件。
  2. 错误C1034是因为编译器未找到标准库头文件的搜索路径,通常是由于未在Visual Studio提供的开发命令行环境中执行命令。

解决步骤

  1. 打开Visual Studio x64 Native Tools Command Prompt(对应64位编译环境),该环境会自动配置好头文件、库文件的搜索路径。
  2. 执行正确的链接命令,使用已生成的目标文件:
    cl first.cpp first.obj
    

内容的提问来源于stack exchange,提问作者Jarzis Hossain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 22:21:06