有人为iOS编译GMock吗

bsxbgnwa  于 2023-06-25  发布在  iOS
关注(0)|答案(1)|浏览(165)

我试图从iOS的源代码编译GMock。我想把它编译成一个归档文件,以便多个iOS项目可以使用它。我使用cmake来构建这个模块(现有的构建系统使用cmake来构建GMock作为dylibs,所以如果我可以使用相同的方法会更容易)。我必须在CMakeLists.txt中添加以下内容以将其构建为归档文件。
set(BUILD_SHARED_LIBS OFF)
存档已经创建,但问题是一些测试(在gtest_build_tests中)失败了。

The following tests FAILED:
 22 - gtest-filepath_test (SEGFAULT)
 51 - gtest_filter_unittest (Failed)
 54 - gtest_output_test (Failed)
 58 - gtest_xml_outfiles_test (Failed)
 59 - gtest_xml_output_unittest (Failed)
Errors while running CTest

有人成功地将GMock构建为iOS的存档吗?如果是这样,你们是怎么做到的??我还必须从终端管理构建过程,而不使用Xcode或xcodebuild命令。
谢谢,阿比奈

tct7dpnv

tct7dpnv1#

由于平台的特定要求,为iOS构建GMock确实是一个挑战。如果您在构建静态库后看到测试失败,可能是由于各种原因,包括编译设置、系统配置或GMock和iOS平台之间的兼容性问题。
以下是关于如何从终端构建GMock for iOS的一般指导方针,确保设置正确的编译器和标志:
1.确保您的计算机上安装了正确版本的iOS SDK。此外,确保您安装了Xcode命令行工具,即使您没有直接使用Xcode。它们为构建iOS代码提供了必要的编译器和库。
1.在使用CMake配置构建时,您需要为iOS平台指定工具链文件。下面是一个如何设置命令的示例:

cmake -H. -Bbuild -DCMAKE_TOOLCHAIN_FILE=/path/to/ios-cmake/toolchain.cmake -DIOS_PLATFORM=OS

将/path/to/ios-cmake/toolchain.cmake替换为iOS工具链文件的实际路径。此工具链文件负责为iOS构建设置正确的环境。
1.配置完成后,使用以下命令启动构建过程:

cmake --build build --config Release

请记住,在这个过程中,您不仅要编译GMock,还要编译它的依赖GoogleTest。如果GoogleTest在iOS平台上有任何问题,它们可能是导致测试失败的原因。
如果在执行这些步骤之后测试失败仍然存在,请尝试更多地挖掘失败消息。这可能会提供线索,说明是什么导致了这些问题。可能需要对源代码添加补丁,或者在构建过程中可能缺少或错误的标志。
此外,请确保您使用的GMock版本与您的iOS版本兼容。检查GMock的问题跟踪器和用户组,看看其他人是否遇到了类似的问题,因为他们可能已经找到了解决方案或变通办法。
请注意,工具链文件通常可以在像ios-cmake这样的包中找到,它提供了一个专门为iOS构建定制的工具链文件。如果您还没有这样做,您可能需要下载并安装这样的软件包。
请记住,GMock主要是为桌面平台设计和测试的。虽然它通常在iOS等移动的平台上工作,但可能会出现不可预见的兼容性问题。如果您继续遇到问题,可能值得考虑其他明确设计用于支持iOS的测试框架。

相关问题