![](/img/trans.png)
[英]XCode C++ linker command failed with exit code 1 (use -v to see invocation)
[英]Xcode: linker command failed with exit code 1 (use -v to see invocation) [C++]
我正在運行包含多個文件的C ++程序(2)
goofing_around.cpp
add.cpp
goofing_around.cpp:
//
// goofing_around.cpp
// new
//
// Created by Chirag Maheshwari on 14/08/18.
// Copyright © 2018 Chirag Maheshwari. All rights reserved.
//
#include <iostream>
int add(int x,int y);
int doubleNumber(int n)
{
return 2*n ;
}
int main()
{
int x;
std::cout << "Enter the number to be doubled: ";
std::cin >> x;
std::cout << doubleNumber(x)<<std::endl;
std::cout << add(3,2) << std::endl;
return 0;
}
add.cpp:
#include <iostream>
int add(int x,int y){
return x+y;
}
但是我得到了這樣的錯誤:
duplicate symbol _main in:
/Users/chirag/Library/Developer/Xcode/DerivedData/new-hapneuayvrpdonefrpnervwkxysx/Build/Intermediates.noindex/new.build/Debug/new.build/Objects-normal/x86_64/goofing_around-5915963FFFEE024.o
/Users/chirag/Library/Developer/Xcode/DerivedData/new-hapneuayvrpdonefrpnervwkxysx/Build/Intermediates.noindex/new.build/Debug/new.build/Objects-normal/x86_64/goofing_around-93C433489854664D.o
ld: 1 duplicate symbol for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
編輯:這很奇怪。錯誤甚至在我添加add.cpp文件之前就存在。但是隨后我刪除了項目並再次嘗試。重寫所有代碼並添加添加文件之后,我刪除了.h文件。但是只有這次,它可以使用完全相同的代碼運行,並且包含相同的函數原型。我也不必包含add.cpp文件。 超級奇怪,但是有人知道為什么嗎?
問題是您沒有很好地鏈接add方法。 您已經在add.cpp中實現了它,但是沒有在主代碼中添加指向它的鏈接。 您應該在goofing_around.cpp中添加另一個“包含”,例如
#include "add.cpp";
它應該工作。
另一個觀察結果:不需要在主代碼中打印方法“ add”的名稱,因為這些操作都是在頭文件中完成的(如果有的話)。 如果沒有,那是沒有意義的,因為您可以將主代碼鏈接到add.cpp。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.