【问题标题】:NASM setting in Vistual Studio13Visual Studio 13 中的 NASM 设置
【发布时间】:2015-06-29 16:57:16
【问题描述】:

我正在创建一个库,它需要一些汇编级代码。 我正在使用 NASM 编写和集成我的 .asm 文件。 现在的问题是,我已经在 VS13 中创建了一个项目。现在我想在我的项目中添加和集成一个汇编级代码。 我已经在我的源目录中添加了一个 .asm 文件,但是当我尝试运行我的测试用例时,编译器无法找到我的汇编代码。

我想知道如何将 .asm 文件与 .c 文件链接。

我的项目结构:

->Project1(生成库)

--->来源

----->文件1.c

----->文件2.c

----->nasm.asm

->Project2(使用库并生成.exe的测试用例)

-->来源

---->main.c

现在,nasm.asm 二进制文件应该附加到 project1 生成的 .lib 中 并且 Project2 应该能够访问 project1.lib

如果问题有点不清楚,请道歉,我用书面形式说清楚有点复杂。如果您需要任何澄清或额外信息,请告诉我。

非常感谢

【问题讨论】:

    标签: c visual-studio assembly nasm


    【解决方案1】:

    对于你们每个程序集文件:

    1. Solution Explorer 中右键单击它并选择 Properties
    2. 确保选择的配置要么是所有配置,要么是你正在使用的配置(这每次都让我头疼!)
    3. 配置属性>常规中将项目类型更改为自定义构建工具
    4. 配置属性>自定义构建工具>常规设置以下项目:

      • 命令行。以此为例:nasm -fwin32 "%(FullPath)" -o %(Filename).obj
      • 输出。这是必要的,VS 检查这个文件。我通常使用%(Filename).obj
      • 链接对象Yes。如果您使用 obj 扩展名命名输出文件,它们会自动包含在链接阶段。

    要检查您是否设置正确,请选择您的程序集文件,右键单击并选择编译

    【讨论】:

    • 感谢您的回复..虽然编译成功,但二进制文件没有生成..我已将输出文件路径硬编码到我的调试目录但我仍然无法在任何地方找到它..
    • @MitulShrivastava 二进制是指来自 nasm 的目标文件还是来自 VS 的整个二进制文件?
    • 仅用于 nasm 的二进制文件。我尝试将其构建为一个单独的项目,并为该项目生成了二进制文件..
    • @MitulShrivastava 我不知道如何为您提供帮助 :( 我再次尝试过,并且使用我的 VS2013 我在我的项目目录中生成了一个来自 nasm 的 obj 文件(不在调试目录中)
    • @MitulShrivastava 你必须将 nasm 目录添加到路径环境变量中(如果你在谷歌上搜索字符串 add directory to path environment variable windows 它会回答)或者你可以在命令行中指定nasm可执行文件的完整路径(比如C:\nasm\nasm.exe
    猜你喜欢
    • 2014-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多