Я хочу использовать cpt для кросс-сборки нескольких пакетов iOS с аркой «armv7», «armv8», «x86_64» и build_type «Debug», «Release». Но когда тестировался первый пакет, он сломал мою сборку с этим "/ bin / sh: bin / test_package: Bad CPU type in executable". Я знаю, что не могу запустить armv7 на моей хост-архитектуре x86_64, но я не хочу, чтобы мой план сборки провалился. Как я могу продолжить сборку без тестирования пакета или успешного тестирования моего пакета.
Я проверил свои CMakeLists.txt и conanfile.py в моем каталоге test_package, но я не знал, как исправить эту проблему.
Вот часть conanfile.py в test_package
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
def test(self):
with tools.environment_append(RunEnvironment(self).vars):
bin_path = os.path.join("bin", "test_package")
self.run(bin_path, run_environment=True)
Вот мой CMakeLists.txt в test_package
project(test_package)
cmake_minimum_required(VERSION 2.8.11)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
add_executable(${PROJECT_NAME} test_package.cpp)
target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
Вот часть моего build.py
builder = ConanMultiPackager()
# add builder settings with the arch and type of build
def add_builder_settings(arch, build_type):
requires = {"*": ["darwin-toolchain/1.0.4@theodelrieu/testing"]}
options = {"darwin-toolchain:bitcode": False}
builder.add(settings={"os": "iOS", "arch": arch, "build_type": build_type, "os.version": "10.0", "compiler": "apple-clang"},
build_requires=requires, options=options)
# add build settings for iOS
add_builder_settings("armv7", "Debug")
add_builder_settings("armv7", "Release")
add_builder_settings("armv8", "Debug")
add_builder_settings("armv8", "Release")
add_builder_settings("x86_64", "Debug")
add_builder_settings("x86_64", "Release")
Вот мой отчет об ошибке
libx264/20171211@username/stable (test package): Running test()
/bin/sh: bin/test_package: Bad CPU type in executable
Я хочу собрать 6 типов пакетов с помощью одного build.py. Но собрать только один пакет не удалось.