【发布时间】:2018-07-30 13:20:10
【问题描述】:
问题是我需要使用之前在 windows 中编译的 macos 上的 makefile 编译库,该库已在 Ubuntu 上进行了测试(与 macOS(已编译)相比,它的工作原理是)当我将 makefile 添加到xcodeporject,并尝试构建这个项目我得到这个错误Xcode building
所以我不能用这个 makefile 在 Xcode 中构建这个库。 但是如果我在终端的帮助下尝试这个(具有相同的源文件、相同的目录、相同的 make 文件) 它正在构建,我实际上不知道如何,但它可以工作,但是当我开始运行测试时(也在终端中) 它给了我这个 test running terminal 我是为 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)
【问题讨论】:
-
请张贴错误信息的文本并输出。防火墙阻止我访问您的链接。此外,文本在移动设备和大屏幕上的缩放效果更好。
-
@ThomasMatthews 可能是我可以以某种方式使用 cmake 生成 makefile ,但我不知道如何,因为我有很多源代码和依赖项,而且这个库正在使用 libxml 库
-
@ThomasMatthews 我认为问题出在构建项目的 make 文件中,尤其是在这行代码 g++ -m32 -g -pipe -O3 -DNDEBUG
标签: c++ xcode makefile cmake linker