【问题标题】:XCode: error: linker command failed with exit code 1 (use -v to see invocation)XCode:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
【发布时间】:2023-03-30 11:45:01
【问题描述】:

我正在做一个项目,当我构建项目时,我遇到了以下问题:

Ld /Users/KiKo-SaMa/Library/Developer/Xcode/DerivedData/SpaceInvaders-cgcsumybmrxbddfqdwhevdvubdic/Build/Products/Debug/SpaceInvaders.app/Contents/MacOS/SpaceInvaders normal x86_64
    cd /Users/KiKo-SaMa/Desktop/SpaceInvaders
    setenv MACOSX_DEPLOYMENT_TARGET 10.6
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -L/Users/KiKo-SaMa/Library/Developer/Xcode/DerivedData/SpaceInvaders-cgcsumybmrxbddfqdwhevdvubdic/Build/Products/Debug -F/Users/KiKo-SaMa/Library/Developer/Xcode/DerivedData/SpaceInvaders-cgcsumybmrxbddfqdwhevdvubdic/Build/Products/Debug -filelist /Users/KiKo-SaMa/Library/Developer/Xcode/DerivedData/SpaceInvaders-cgcsumybmrxbddfqdwhevdvubdic/Build/Intermediates/SpaceInvaders.build/Debug/SpaceInvaders.build/Objects-normal/x86_64/SpaceInvaders.LinkFileList -mmacosx-version-min=10.6 -fobjc-arc -fobjc-link-runtime -framework Cocoa -o /Users/KiKo-SaMa/Library/Developer/Xcode/DerivedData/SpaceInvaders-cgcsumybmrxbddfqdwhevdvubdic/Build/Products/Debug/SpaceInvaders.app/Contents/MacOS/SpaceInvaders

duplicate symbol _Cycles in:
    /Users/KiKo-SaMa/Library/Developer/Xcode/DerivedData/SpaceInvaders-cgcsumybmrxbddfqdwhevdvubdic/Build/Intermediates/SpaceInvaders.build/Debug/SpaceInvaders.build/Objects-normal/x86_64/emulator.o
    /Users/KiKo-SaMa/Library/Developer/Xcode/DerivedData/SpaceInvaders-cgcsumybmrxbddfqdwhevdvubdic/Build/Intermediates/SpaceInvaders.build/Debug/SpaceInvaders.build/Objects-normal/x86_64/SpaceInvadersMachine.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

起初,我查看了这里的问题并试图理解错误消息,似乎我有一个重复的变量名,所以我更改了它,当我尝试再次构建它时,我一直收到同样的错误,我还检查了重复的函数名称,我的代码似乎没有任何问题。我还检查了包含,因为在一个问题中,其中一个解决方案是包含 .m 而不是 .h。有人可以帮我解决这个问题吗?

我不知道这是否相关,但起初我遇到了 3 个问题,似乎我必须在我的项目的“构建阶段”的“编译源”中添加两个 C 文件,现在我只得到 1 个问题,即上述问题。

谢谢

【问题讨论】:

    标签: objective-c xcode linker linker-errors


    【解决方案1】:

    首先转到管理器(右上角),项目,选择项目(左列),删除派生数据
    如果这不能解决问题......那么:
    检查每个文件(甚至是头文件): Cycle
    你会在两个文件中找到它...从一个文件中删除它...你很好

    【讨论】:

    • 组织者的想法没有奏效,我再次检查了所有文件,我只在 2 个文件 emulator.h 中有它,其中包含数组本身称为 Cycles 和 emulator.c,我从中返回一个元素函数中的数组
    • 该错误意味着您已经在两个文件中声明了 Cycles(不仅仅是使用它)。我已经看到了这个错误,这正是我正在做的事情。尝试退出 Xcode。最后机会......创建新项目并一个接一个地复制/粘贴,以确保 Cycles 只声明一次。抱歉没有其他想法。
    • 我不知道这是否也相关,但是在我使用它的另一个文件中,我将其更改为 DoCPUCycles,这是否意味着我应该将其更改为与 Cycles 完全不同的单词,或者它没有没关系?
    • 您创建了名为 DoCPUCycles 的新变量?如果是这样....没问题。检查 SpaceInvadersMachine 文件!你有这个名字的权利吗??里面必须有第二个声明
    • 我尝试将所有内容复制到一个新项目中,并且成功了。它构建没有错误。但这是为什么呢?非常感谢您的帮助。
    猜你喜欢
    • 2019-09-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2016-01-04
    • 2016-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多