IOS No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv6 armv7)错误

在从Xcode 4.0升级到4.2版本后,遇到'No architectures to compile for'错误。通过在BuildSettings中添加架构选项i386,成功解决了无法编译的问题。
我在xCode4.0版本上写了一个程序,然后觉得4.0运行太慢了,装了xCode4.2版本,在4.2版本上运行程序
报了一个:No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv6 armv7)的错误。
上网上搜了下,

解决方法如下:
在Bulid Settings选项下面的Architectures一栏里,在Valid Architectures里加入一项i386,就好了
cmake_minimum_required(VERSION 3.5) project(nav2_mppi_controller LANGUAGES CXX CUDA) # === 关键策略设置 === cmake_policy(SET CMP0074 NEW) cmake_policy(SET CMP0104 NEW) # === 平台检测与工具链设置 === if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") message(STATUS "Configuring for Jetson ARM64 platform") # 设置CUDA工具包路径 if(NOT DEFINED CUDAToolkit_ROOT) set(CUDAToolkit_ROOT "/usr/local/cuda") endif() # Jetson AGX Orin专用CUDA架构设置 set(CMAKE_CUDA_ARCHITECTURES "87") # Orin的Ampere架构 set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_87,code=sm_87") set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler=-march=armv8.2-a+crypto+fp16+rcpc+dotprod") # 添加Jetson特定优化标志 add_compile_options(-O3 -ffast-math -funroll-loops) add_compile_options($<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=-O3>) add_compile_options($<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=-ffast-math>) # 确保使用正确的CUDA工具链 message(STATUS "Configuring for Jetson AGX Orin with CUDA architecture 8.7 (Ampere)") endif() # === 编译器标准设置 === set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CUDA_STANDARD 17) set(CMAKE_CUDA_STANDARD_REQUIRED ON) # === 查找依赖项 === find_package(ament_cmake REQUIRED) find_package(CUDAToolkit REQUIRED) find_package(xtensor REQUIRED) find_package(xsimd REQUIRED) # === 添加CUDA支持 === enable_language(CUDA) set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --default-stream per-thread") set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --extended-lambda") set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --expt-relaxed-constexpr") set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --generate-line-info") set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --use_fast_math") # === 包含目录 === include_directories( include ${CUDAToolkit_INCLUDE_DIRS} ${xsimd_INCLUDE_DIRS} ) # === 定义编译选项 === add_definitions(-DXTENSOR_ENABLE_XSIMD) add_definitions(-DXTENSOR_USE_XSIMD) # === 依赖包列表 === set(dependencies_pkgs rclcpp nav2_common pluginlib tf2 geometry_msgs visualization_msgs nav_msgs nav2_core nav2_costmap_2d nav2_util tf2_geometry_msgs tf2_eigen tf2_ros ) foreach(pkg IN LISTS dependencies_pkgs) find_package(${pkg} REQUIRED) endforeach() nav2_package() # === 主库构建 === add_library(mppi_controller SHARED src/controller.cpp src/optimizer.cpp src/critic_manager.cpp src/trajectory_visualizer.cpp src/path_handler.cpp src/parameters_handler.cpp src/noise_generator.cpp src/optimizer.cu # 显式添加CUDA源文件 ) # 特别处理CUDA文件 set_source_files_properties(src/optimizer.cu PROPERTIES LANGUAGE CUDA) # 目标特定编译选项 - 移除了不支持的clang参数 target_compile_options(mppi_controller PRIVATE $<$<COMPILE_LANGUAGE:CXX>:-fPIC> $<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=-fPIC> $<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=-fno-strict-aliasing> ) # 链接选项 target_link_options(mppi_controller PRIVATE $<$<LINK_LANGUAGE:CUDA>:-Wl,--no-as-needed> ) # === 批评器库 === add_library(mppi_critics SHARED src/critics/obstacles_critic.cpp src/critics/cost_critic.cpp src/critics/goal_critic.cpp src/critics/goal_angle_critic.cpp src/critics/path_align_critic.cpp src/critics/path_align_legacy_critic.cpp src/critics/path_follow_critic.cpp src/critics/path_angle_critic.cpp src/critics/prefer_forward_critic.cpp src/critics/twirling_critic.cpp src/critics/constraint_critic.cpp src/critics/velocity_deadband_critic.cpp ) # === 配置所有库 === set(libraries mppi_controller mppi_critics) foreach(lib IN LISTS libraries) target_include_directories(${lib} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include> ) target_compile_definitions(${lib} PRIVATE XTENSOR_ENABLE_XSIMD XTENSOR_USE_XSIMD ) if(${lib} STREQUAL "mppi_controller") target_link_libraries(${lib} xtensor xtensor::optimize xtensor::use_xsimd CUDA::cudart CUDA::cuda_driver ) else() target_link_libraries(${lib} xtensor xtensor::optimize xtensor::use_xsimd ) endif() ament_target_dependencies(${lib} ${dependencies_pkgs}) # 确保所有目标都有正确的C++标准设置 set_target_properties(${lib} PROPERTIES CXX_STANDARD 17 CUDA_STANDARD 17 POSITION_INDEPENDENT_CODE ON ) endforeach() # === 安装与导出 === install(TARGETS ${libraries} EXPORT ${PROJECT_NAME}_targets ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin INCLUDES DESTINATION include ) install(DIRECTORY include/ DESTINATION include/) # === 测试设置 === if(BUILD_TESTING) find_package(ament_lint_auto REQUIRED) find_package(ament_cmake_gtest REQUIRED) set(ament_cmake_copyright_FOUND TRUE) ament_lint_auto_find_test_dependencies() add_subdirectory(test) endif() # === 导出依赖和插件 === ament_export_targets(${PROJECT_NAME}_targets HAS_LIBRARY_TARGET) ament_export_dependencies(${dependencies_pkgs}) ament_export_include_directories(include) pluginlib_export_plugin_description_file(nav2_core mppic.xml) pluginlib_export_plugin_description_file(nav2_mppi_controller critics.xml) ament_package()- stderr: nav2_mppi_controller /usr/lib/gcc/aarch64-linux-gnu/11/include/arm_neon.h(38): error: identifier "__Int8x8_t" is undefined typedef __Int8x8_t int8x8_t;
最新发布
11-28
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值