首页 > 解决方案 > 我不能用 C++ 编译 Xcode 库

问题描述

问题是我需要使用之前在 windows 中编译的 macos 上的 makefile 编译库,该库在 Ubuntu 上进行了测试(与 macOS(已编译)相比,它与 macOS 相比工作)当我将 makefile 添加到 xcodeporject 时,并且尝试构建这个项目我得到这个错误Xcode building

所以我不能用这个makefile在Xcode中构建这个库。但是如果我在终端的帮助下尝试这个(具有相同的源文件,相同的目录,相同的 make 文件)它正在构建,我实际上不知道如何,但它可以工作,但是当我开始运行测试时(也在终端) 它为我提供了这个 测试运行终端 ,我是为 macOS 和 makefiles 编译的新手,我知道这是怎么回事,请帮忙!

这是 Xcode 中的错误文本:Undefined symbols for architecture x86_64: "_main", referenced from: implicit entry/start for main executable "_xmlCheckVersion", referenced from: ADA::GCGxmlIO::OpenImpl(std::__1::basic_istream<char, std::__1::char_traits<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, ADA::GCGFile&) in GCGxmlIO.o ADA::GCGxmlIO::SaveImpl(ADA::GCGxmlIO::IDeferredOstream*, ADA::GCGFile const&) in GCGxmlIO.o "_xmlDocGetRootElement", referenced from: ADA::GCGxmlIO::OpenImpl(std::__1::basic_istream<char, std::__1::char_traits<char> >*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, ADA::GCGFile&) in GCGxmlIO.o "_xmlFree", referenced from:

以及运行测试时的终端错误: MacBook-Pro-Artem:gcc artem$ g++ -m32 -g -pipe -O3 -DNDEBUG -I../../../src -I/usr/include -I/usr/local/include -o ../../bin/common-wdi/apaEncode.xcodeproj ../../bin/common-wdi/obj/PDFAPI/apaEncode/encode.o ../../../bin/common-wdi/lib/PDFAPI.a ../../../bin/common-wdi/lib/ELib.a -lz

'Undefined symbols for architecture i386:'
APA::PDPage::PAGE_SIZE_LETTER", referenced from:
APA::PDPageTree::NewPage(unsigned long) in PDFAPI.a(PDPageTree.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

标签: c++xcodemakefilecmakelinker

解决方案


已经解决了,问题出在依赖项和源代码中


推荐阅读