繁体   English   中英

在Xcode 4中使用和引用多个cpp文件

[英]Using and referencing multiple cpp files in Xcode 4

我是编程新手,目前正在从事一个项目,该项目太大了,无法保存在单个cpp文件中,因此我决定将其拆分为不同cpp文件中的组成部分。

该项目有3个cpp文件;

main.cpp,TwinCameraCapture.cpp,FaceCalibration.cpp,

该代码的所有内容都位于FaceCalibration.cpp和TwinCameraCapture.cpp中,其中main.cpp如下所示:

#include "FaceCalibration.cpp"
#include "TwinCamCapture.cpp"

int main ()
{
    FaceCalibration();

    TwinCameraCapture();
}

FaceCalibration和TwinCameraCapture是它们各自的.cpp文件中的主要功能。

现在,我知道我在这里做错了,我只是不知道它到底是什么。 尝试编译时出现的错误是:

Apple Mach-O链接器(Id)错误

命令/Developer/usr/bin/llvm-g++-4.2失败,退出代码为1

有人可以解释我做错了什么以及如何解决,或者指出要这样做的指南吗?

谢谢

编辑:完整的错误消息是:

    ld: duplicate symbol getWindow(cv::Rect_<int>)   in
 /Users/facebooth/Library/Developer/Xcode/DerivedData/FullProgramTest-
awrdeznffntuoacjytwewfbjdmza/Build/Intermediates/FullProgramTest.build/Debug/FullProgramTest.build/Objects-normal/x86_64/FaceCalibration.o and 
/Users/facebooth/Library/Developer/Xcode/DerivedData/FullProgramTest-
awrdeznffntuoacjytwewfbjdmza/Build/Intermediates/FullProgramTest.build/Debug/FullProgramTest.build/Objects-normal/x86_64/main.o for architecture x86_64
    Command /Developer/usr/bin/llvm-g++-4.2 failed with exit code 1

通常,您不会将.cpp文件用作#include。 您应该包含一个.h文件。

知道您的实际错误消息是什么,而不是仅是“失败”消息,将很有帮助,但我怀疑它是“重复标识符”或诸如此类的-因为您的IDE已经在编译并链接文件TwincameraCapture.cpp,然后您将那段代码作为主要源代码的一部分,这意味着编译器两次生成相同的代码,链接器说:“这是您的意思之一?” 当它看到两个函数具有完全相同的名称时。

只需将包含main()函数的.cpp文件重命名为.h文件,然后适当调整#include即可使用。 我还远远不够了解标题,以了解为什么在xCode或其他任何东西中都是这样,但我确实知道这可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM