ranmo16 2024-09-08 19:22 采纳率: 0%
浏览 1

之前用keil写的一个简单的代码运行成功了,但是下载了vsstudio之后就运行不了了

\OBJ\TEMPLET.axf: Error: L6200E: Symbol __ARM_use_no_argv multiply defined (by jichu.o and main.o).
..\OBJ\TEMPLET.axf: Error: L6200E: Symbol main multiply defined (by jichu.o and main.o).
Not enough information to list image symbols.
Not enough information to list load addresses in the image map.
Finished: 2 information, 0 warning and 2 error messages.
"..\OBJ\TEMPLET.axf" - 2 Error(s), 1 Warning(s).
Target not created.
Build Time Elapsed: 00:00:01

  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-08 19:23
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    看起来你在使用Keil开发环境后切换到Visual Studio时遇到了链接错误。根据你提供的错误信息,问题出在两个地方:一是符号 __ARM_use_no_argvmainjichu.omain.o 中被多次定义。在C语言中,同一个符号(比如函数或变量)在多个源文件中定义是不允许的,因为这会导致链接错误。这就是你遇到的问题。

    为了解决这个问题,你需要找到在哪里定义了这些符号并避免重复定义。这可能涉及到检查你的代码以及可能的库文件。这里有一些可能的解决方案:

    1. 检查符号的定义: 在你的项目中查找这两个符号 __ARM_use_no_argvmain 的定义。确保它们只在单个源文件中定义,并且在其他文件中只是声明或引用。如果它们被多次定义,你需要移除多余的定义。
    2. 修改编译选项: 如果你在多个文件中使用了相同的编译选项(例如定义了相同的宏),这可能导致符号的重复定义。尝试修改编译选项以避免这种情况。
    3. 检查库文件: 如果你使用了第三方库文件,确保这些库文件中没有定义这些符号。如果它们定义了这些符号,你可能需要找到不同的库版本或者修改你的项目配置以避免冲突。

    另一个可能的问题是Visual Studio的项目配置可能与Keil的配置不同,这可能导致一些编译或链接选项的更改。你可以检查你的项目设置以确保它们与Keil的设置相匹配。此外,如果你在Visual Studio中添加了新的源文件或更改了文件路径,这也可能影响编译过程。请确保所有的源文件都被正确添加到项目中,并且所有的路径都是正确的。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月8日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀