在Xcode中更正工作流以避免错误:架构x86\u 64的符号重复 背景 你好,我正在学习C++和新的XCODE。我一直遇到标题中提到的错误,不知道如何修复它。我想知道在Xcode中学习正确的工作流是否能帮助我避免这个问题

在Xcode中更正工作流以避免错误:架构x86\u 64的符号重复 背景 你好,我正在学习C++和新的XCODE。我一直遇到标题中提到的错误,不知道如何修复它。我想知道在Xcode中学习正确的工作流是否能帮助我避免这个问题,c++,c,xcode,compilation,linker,C++,C,Xcode,Compilation,Linker,这是我的目录: 我这里有: 在projectsignal下,我首先创建了一个名为 signalMean,它有一些文件,并且编译得很好。然后,我简单地在signal下创建了另一个名为signalVariance的组,将完全相同的文件从signalMean复制到这个新组。在我将新函数添加到main.cpp文件并将其重命名为signalVariance.cpp之后,我在尝试编译时不断收到重复符号错误 代码 //波形.h 外部双输入信号_f32_1kHz_15kHz[320]; //waveforms

这是我的目录:

我这里有:

在projectsignal下,我首先创建了一个名为 signalMean,它有一些文件,并且编译得很好。然后,我简单地在signal下创建了另一个名为signalVariance的组,将完全相同的文件从signalMean复制到这个新组。在我将新函数添加到main.cpp文件并将其重命名为signalVariance.cpp之后,我在尝试编译时不断收到重复符号错误

代码
//波形.h
外部双输入信号_f32_1kHz_15kHz[320];
//waveforms.cpp
#包括“波形.h”
双输入信号_f32_1kHz_15kHz[320]=
{+0.0000000000f,+0.5924659585f,-0.0947343455f,…}
//signalMean.cpp
#包括
#包括“波形.h”
#定义信号长度320
双计算信号平均值(双*sig\U src\U arr,int sig\U长度);
双信号平均值;
int main(){
//代码
}
双计算信号平均值(双*sig\U src\U arr,int sig\U长度){
//代码
}
错误 问题: 如果我想继续从以前编写的代码中构建项目,那么Xcode中的正确工作流应该是什么来避免这个问题?每组代表不同的主题/功能,但它们彼此共享代码,将它们放在同一个项目下是有意义的,例如信号


很抱歉,这是一个冗长的问题。如果有人能给我指出正确的方向,我将不胜感激。

我认为你把Xcode组和Xcode目标搞混了

组是在项目中组织源代码的一种方法(它们也在文件系统中创建文件夹),但是,对于您的问题至关重要的是,所有源代码都被编译到同一个目标可执行文件中

我认为您要做的是在项目中创建多个目标,这允许您定义哪个源代码文件属于哪个目标。请参见有关使用目标的说明


如果您没有意识到,在单个可执行单元(可执行或动态库)中不能有同一符号(方法或变量)的多个副本。

我认为您混淆了Xcode组和Xcode目标

组是在项目中组织源代码的一种方法(它们也在文件系统中创建文件夹),但是,对于您的问题至关重要的是,所有源代码都被编译到同一个目标可执行文件中

我认为您要做的是在项目中创建多个目标,这允许您定义哪个源代码文件属于哪个目标。请参见有关使用目标的说明


如果您没有意识到,在一个可执行单元(可执行或动态库)中不能有同一符号(方法或变量)的多个副本。

这真的很有帮助!非常感谢这真的很有帮助!多谢各位
duplicate symbol _InputSignal_f32_1kHz_15kHz in:
    .../x86_64/waveforms-c8eb105c3a214768b4cffcf6a99ba09ec9961410b041f2905a2df7e9fe06655e.o
    .../x86_64/waveforms-c8eb105c3a214768b4cffcf6a99ba09e2eac5ae7a592aee13a84d551d65ef983.o
duplicate symbol _main in:
    .../x86_64/signalVariance.o
    .../x86_64/signalMean.o
duplicate symbol _signal_mean in:
    .../x86_64/signalVariance.o
    .../x86_64/signalMean.o
duplicate symbol __Z16calc_signal_meanPdi in:
    .../x86_64/signalVariance.o
    .../x86_64/signalMean.o
ld: 4 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)