showtf 2024-04-12 13:58 采纳率: 0%
浏览 415

Keil5显示目标未建立,为什么

程序写完,编译的时候显示目标未建立,为什么?程序也没显示有错误啊

img

  • 写回答

6条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-04-13 20:58
    关注

    【相关推荐】



    • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/1022502
    • 这篇博客也不错, 你可以看下按键的原理及独立式按键的实现
    • 您还可以看一下 张立铜老师的太空大战游戏实战课程课程中的 开发环境建立,建立一个窗口小节, 巩固相关知识点
    • 除此之外, 这篇博客: keil建立工程项目中的 建立项目流程 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:

      (1)第一步:(小编默认读者们是安装好了keil的哦,如果没有安装好的话,可以私信小编。)打开keil建立一个新的keil工程如图:请添加图片描述

      (2)第二步:建立一个文件夹用来放keil工程项目,这个很重要,我之前就是因为没有很重视这个问题导致项目工程找不到,感觉非常难受,尤其是像我一样的初学者要更加注意这一点,养成良好的习惯。最好再自己建一个文件夹用于放代码。请添加图片描述

      (3)第三步:选择自己准备用的单片机的芯片,大家根据实际情况来选择(可参考博客https://blog.csdn.net/qq_37280074/article/details/119823359)
      请添加图片描述请添加图片描述
      (4)第四步:(这一步是只有出现某些特殊情况的时候操作),第一次建项目可以忽略。

      我有一个同学在建立工程的时候发现代码没有错误,但是编译代码时报错了,他之前也下过keil不过删除的时候没删干净,所以大家遇到这样的错误的时,可以参考这个,勾选图中选项。

      请添加图片描述
      (5)第五步:将代码和启动文件导入到keil工程中。(一个是代码,还有就是.s为后缀的启动文件。)请添加图片描述

      😀文件类型要选择所有文件类型。

      请添加图片描述
      (6)第六步:点击SVCS下面的那个“魔法棒”,点击output,勾选create hex file选项,点击OK。请添加图片描述请添加图片描述
      (7)第七步:构建项目。
      请添加图片描述
      (8)第八步:构建成功后,会在项目工程的objects的文件夹下生成.hex的文件,如果没有的话,看是不是没有构建成功,或者代码有错误。
      请添加图片描述
      (9)第九步:将USB线与单片机和电脑相连,在电脑的设备管理器(右击此电脑,选择管理即可查看)中查看是否有端口存在。(我这里是没有接USB的情况。)请添加图片描述
      (10)第十步:这里要用一个烧写程序的软件(我用的是FlyMcu)。把之前生成的hex文件放进去,配置好端口,点击开始编程,耐性等待一会就好了。
      在这里插入图片描述


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

    展开全部

    评论
  • 关注

    中午好🌞🌞🌞
    本答案参考ChatGPT-3.5

    可能的原因如下:

    1. 缺少目标文件。这意味着您的Keil项目中可能缺少某些编译的文件。检查项目文件树以确保所有源文件和库文件都在正确的位置。您还可以尝试重建项目来确保所有文件都被正确地添加到项目中。

    2. 选项不正确。在Keil的Project选项菜单中,确保您选择了正确的芯片和编译器选项,因为选择错误的选项可能导致编译错误或目标未创建。

    3. 编译器版本不兼容。如果您更新了Keil编译器版本或使用了不同的编译器,那么您可能会遇到编译错误和目标未创建的问题。尝试使用与您的项目兼容的编译器版本。

    解决方案:

    1. 重新构建项目。检查项目文件树以确保所有源文件和库文件都位于正确的位置,并尝试重建项目。

    2. 确认选项正确。在Keil的Project选项菜单中确认您选择了正确的芯片和编译器选项。

    3. 更新编译器版本。如果您更新了编译器版本,则可能需要使用与您的项目兼容的版本。

    评论
  • DTcode7 前端领域优质创作者 2024-06-14 14:45
    关注

    答案引用自chatgpt生成,望对题主有所帮助/启发;若有帮助,还望采纳!

    Keil5显示目标未建立的原因可能有以下几点:

    1. 项目文件损坏或丢失。
    2. 编译器配置错误。
    3. 硬件连接问题。
    4. 代码编写错误。

    为了解决这个问题,你可以尝试以下方法:

    1. 检查项目文件是否完整,如果没有备份,可以尝试重新创建一个新的项目。
    2. 检查编译器配置是否正确,包括芯片型号、时钟频率等参数。
    3. 检查硬件连接是否正确,确保单片机与电脑连接正常。
    4. 检查代码编写是否有误,可以使用调试工具进行调试。

    如果以上方法都无法解决问题,建议查阅Keil5的官方文档或者寻求专业人士的帮助。

    评论
  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-12 13:58
    关注

    引自免费微信小程序:皆我百晓生

    在Keil uVision 5中遇到“目标未建立”的错误,通常是因为编译过程中出现了严重的问题,比如语法错误、宏定义过深等。根据你提供的信息,错误提示是“MACROS TOO NESTED”,这表明可能在程序中有嵌套过深的宏定义。

    要解决这个问题,你需要检查你的源文件中的宏定义。宏定义过深通常是由于递归宏或者深度嵌套的宏导致的。以下是一些可能的原因及相应的解决方法:

    1. 递归宏:确保没有定义会无限循环的宏。

      // 错误示例
      #define MAX(a, b) ((a) > (b) ? (a) : (MAX(b, a))) // 这个例子会导致无限递归
      
      // 正确示例
      #define MAX(a, b) ((a) > (b) ? (a) : (b))
      
    2. 宏嵌套过深:减少宏之间的嵌套层次。

      // 假设这里有一些宏定义
      #define A(x) x
      #define B(y) A(y)
      #define C(z) B(z)
      
      // 如果你在代码中这样使用
      int result = C(MAX(10, 20)); // 这可能会导致嵌套过深,尤其是当MAX内部也有宏时
      
      // 尝试直接调用,或者重新组织宏结构以减少嵌套
      int result = MAX(10, 20);
      
    3. 预处理器指令错误:检查#if#ifdef#ifndef#elif#else#endif 的正确配对。

    4. 头文件包含问题:确认所有包含的头文件都已经正确包含了,并且没有重复包含同一个头文件(可以使用#pragma once或者在头文件开头加入条件编译来防止)。

    5. 其他语法错误:尽管你提到没有看到错误,但还是建议仔细检查整个项目,特别是函数声明和定义是否匹配,变量类型和函数参数是否一致,以及缩进和括号是否正确。

    6. 清理并重新编译:尝试清除构建目录,然后从头开始编译。有时候,遗留的中间文件可能会导致这样的问题。

    如果你按照上述步骤检查后仍然存在问题,那么请提供更多的代码片段,以便我能更具体地分析问题所在。如果代码量较大,你可以上传到GitHub Gist或者其他在线代码共享平台,然后分享链接。

    评论 编辑记录
  • stormsha 全栈领域优质创作者 2024-04-12 13:59
    关注

    根据你提供的图片,编译时显示“目标未建立”错误,但程序没有显示错误。这可能是由于以下几个原因:

    1. 编译器问题:编译器可能存在问题,导致无法正确建立目标文件。你可以尝试更新或重新安装编译器来解决这个问题。
    2. 文件路径问题:编译器可能无法找到源文件或头文件的正确路径。请确保你的源文件和头文件的路径正确,并且编译器能够访问这些文件。
    3. 链接问题:你的程序可能依赖于其他库或模块,但编译器无法找到这些库或模块。请确保你已经正确链接了所需的库或模块。
    4. 目标文件名问题:编译器可能无法确定目标文件的名称。请确保你的源文件和目标文件的名称正确,并且符合编译器的命名约定。
    5. 编译选项问题:你可能使用了错误的编译选项或缺少必要的编译选项。请检查你的编译命令,确保使用了正确的选项。

    如果你已经检查了以上几点,但问题仍然存在,你可以尝试使用不同的编译器或在不同的环境中编译你的程序,以确定问题是否与编译器或环境有关。如果你仍然无法解决问题,请提供更多的信息,例如你的源代码、编译命令和编译器的版本,以便进一步帮助你解决这个问题。

    评论
  • GISer Liu 2024-04-12 14:00
    关注

    该回答引用自GPT-3.5,由博主GISer Liu编写:

    针对您的问题,出现"目标未建立"的情况可能有几个原因:

    1. 项目配置问题 :在Keil5中,您需要确保项目配置正确。检查您的工程设置,特别是目标选项和编译器选项。确保选择了正确的目标设备,并且工程路径没有错误。
    2. 文件路径错误 :检查您的源文件和头文件路径是否设置正确。有时候文件路径错误会导致编译器无法找到相应的文件而报错。
    3. 源代码错误 :即使编译器没有显示错误,但是有些隐藏的错误可能导致编译失败。请确保您的代码逻辑正确,语法无误。
      解决方案如下:
    4. 检查项目配置 :打开您的项目,在"Options for Target"中检查设备设置是否正确。在"Options for Target" > "C/C++" 中检查编译器选项是否正确配置。
    5. 检查文件路径 :确认所有的源文件和头文件路径都正确。您可以在Keil中检查文件是否正确添加到项目中。
    6. 检查源代码 :逐行检查您的源代码,特别是最近修改的部分。即使没有显示错误,也有可能存在逻辑错误导致编译失败。
      如果以上方法都没有解决问题,您可以尝试重新构建项目,或者在Keil社区或相关论坛上搜索类似的问题,看看其他用户是如何解决的。

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部