나는 android ndk13b로 만든 독립 실행 형 툴체인을 사용하고 있습니다. 그것은 잘 작동하지만 모든 툴 (링커, 아카이버 등)을 찾으려면 toolchain 파일에 매우 자세한 섹션이 있습니다. 더 응축시킬 방법이 있습니까? 작동하지 않았다 무엇Cmake 크로스 컴파일 : 찾기 도구
SET(COMPILER_PATH "<path_to_my_llvm_directory>")
SET(CMAKE_TOOLCHAIN_PREFIX aarch64-linux-android-) #In theory should allow to find minor tools like ar and objdump, see http://stackoverflow.com/a/7032021/2436175
find_program(CMAKE_C_COMPILER clang.cmd PATH ${COMPILER_PATH})
find_program(CMAKE_CXX_COMPILER clang++.cmd PATH ${COMPILER_PATH})
find_program(CMAKE_AR ${CMAKE_TOOLCHAIN_PREFIX}ar.exe PATHS ${COMPILER_PATH})
find_program(CMAKE_RANLIB ${CMAKE_TOOLCHAIN_PREFIX}ranlib.exe PATHS ${COMPILER_PATH})
find_program(CMAKE_LINKER ${CMAKE_TOOLCHAIN_PREFIX}ld.exe PATHS ${COMPILER_PATH})
find_program(CMAKE_NM ${CMAKE_TOOLCHAIN_PREFIX}nm.exe PATHS ${COMPILER_PATH})
find_program(CMAKE_OBJCOPY ${CMAKE_TOOLCHAIN_PREFIX}objcopy.exe PATHS ${COMPILER_PATH})
find_program(CMAKE_OBJDUMP ${CMAKE_TOOLCHAIN_PREFIX}objdump.exe PATHS ${COMPILER_PATH})
find_program(CMAKE_STRIP ${CMAKE_TOOLCHAIN_PREFIX}strip.exe PATHS ${COMPILER_PATH})
:
- 명시 적으로
find_program
를 사용하지 않음은 -> 내가${COMPILER_PATH}
에CMAKE_FIND_ROOT_PATH
설정 내 길 - 에있는 다른와 Mingw 툴체인에서 다른 도구를 찾습니다. 이 시점에서 컴파일러를 찾지도 못합니다. 나는 그러나,
SET(CMAKE_C_COMPILER ${COMPILER_PATH}/clang.cmd)
와 대신 (++ 그 소리에 대한 동일) 컴파일러를 설정하여 여전히find_program
으로 다른 도구를 I가find_program
을 발견 특히ONLY_CMAKE_FIND_ROOT_PATH
참고
SET(CMAKE_AR ${COMPILER_PATH}/${CMAKE_TOOLCHAIN_PREFIX}ar.exe
(아카이브 작업이 실패하고 난 변수가 설정되지 않은 cmake-GUI에서 볼 수있다).
'... cmake-gui에서 변수가 설정되지 않은 것을 볼 수 있습니다. '-'cmake-gui'는 * cached * 변수 만 표시합니다. SET (CMAKE_AR ... CACHE PATH "Archiver")'를 사용할 수 있습니다. – Tsyvarev
"더 응축시킬 방법이 있습니까?" 좋은 결과 내길 바랄 게. Cmake는 훌륭한 도구이지만 구문 및 언어 동작은 쓰레기입니다. 키트웨어가 파이썬으로 작성하지 않은 것은 정말 수치스러운 일입니다. ( –
@RichardHodges 파이썬은 가지고 있지만 소프트웨어를 구축 할 수 있도록 모든 동료에게 우리의 삶을 편하게 만들지 못했을 것이라고 묻습니다. 그리고 파이썬에서 "완전한 독립적 인"프로그램을 만드는 것은 쉬운 일이 아닙니다. – Antonio