[英]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.