안드로이드 NDK에서 ccache 활성화
9020 단어 Android
개시하다
NDK 구축 시 ccache를 도입하여 구축 시간을 단축합니다.
ccache는 캐시 컴파일을 할 때 생성되는 대상의 소프트웨어입니다.자세한 설명은 본가와 위키백과를 참조하세요.
설정
ccache 설치
Ubuntu
% sudo apt-get install ccache
MacOS(homebrew)
% brew install ccache
ccache의 캐시 크기 최대값 지정하기
크기가 큰 것이 좋으므로 총 캐시 용량을 20GB로 지정합니다.% ccache -M 20G
환경 변수 설정
사용 중인 셸의 점 파일~/.bashrc
또는 ~/.zshrc
에 환경 변수를 설정하십시오.# ccache
export USE_CCACHE=1
export NDK_CCACHE=/usr/local/bin/ccache # Ubuntu なら /usr/bin/ccache
export CCACHE_CPP2=yes
export CCACHE_COMPILERCHECK=content
설정을 반영합니다.% source ~/.bashrc (or ~/.zshrc)
절차.
환경 변수USE_CCACHE
와 NDK_CCACHE
를 설정하면 ndk-build는ccache를 사용합니다.
평소와 같이 ndk-build 명령을 실행할 때 캐시됩니다.
% cd /path/to/android_project/jni
% ndk-build
사용 안 함 USE_CCACHE
와 NDK_CCACHE
unset이면ccache가 무효화될 수 있습니다.% unset USE_CCACHE
% unset NDK_CCACHE
% ndk-build
다시 활성화하려면 source 명령을 사용하여 점 파일을 다시 읽거나 USE-를 사용합니다.CCACHE, NDK_CCACHE 환경 변수를 다시 설정하십시오.
캐시 지우기
구축에 실패하거나 캐시 보안이 잘못되면ccache 캐시를 지우십시오.ccache -cC
유효한 Android NDK CMak 방법
최근 몇 년 동안 구축 시스템은 ant
에서 gradle
로, IDE는 Eclipse에서 안드로이드 스튜디오로, NDK 구축도 ndk-build
에서 CMake
로 옮겨졌다.
CMake 구조에서 NDK_CCACHE
환경 변수 설정만 사용하면ccache를 사용할 수 없습니다.
파일럿 오류가 발생한 후 NDK CMake 빌드에서 ccache가 활성화되어 설정 방법에 대해 설명합니다.
(보다 효율적인 설정 방법이 있으면 알려주세요
CMake
NDKCMakeList.txt
에 ccache 설정을 삽입합니다.
CMakeLists.txt
option(ENABLE_CCACHE "Enable ccache?" OFF)
# ccache
if (NOT $ENV{NDK_CCACHE} EQUAL "")
set(CCACHE_EXE $ENV{NDK_CCACHE})
if(ENABLE_CCACHE)
if(CMAKE_C_COMPILER_LAUNCHER)
set(CMAKE_C_COMPILER_LAUNCHER "${CMAKE_C_COMPILER_LAUNCHER}" "${CCACHE_EXE}")
else()
set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_EXE}")
endif()
if(CMAKE_CXX_COMPILER_LAUNCHER)
set(CMAKE_CXX_COMPILER_LAUNCHER "${CMAKE_CXX_COMPILER_LAUNCHER}" "${CCACHE_EXE}")
else()
set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_EXE}")
endif()
endif()
endif()
NDK_CCACHE
환경 변수의 정의CMAKE_C_COMPILER_LAUNCHER
와 CMAKE_CXX_COMPILER_LAUNCHER
설정NDK_CCACHE
의 값(ccache의 전체 경로)이 있으면ndk-build
와ccache의 설정이 공존합니다.그렇지 않으면 find_program(CCACHE_EXE ccache)
에 ccache 명령이 있을 때 더 일반적인 설정을 할 수 있습니다)NDK_CCACHE
환경 변수 성명에 영향을 주지 않고ccache의 유효 무효를 전환할 수 있는 옵션을 추가합니다ENABLE_CCACHE
.
app/build.gradle
app/build.gradledef ndkCcache = System.getenv("NDK_CCACHE")
if (ndkCcache == null) {
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
ndkCcache = properties.getProperty('ccache.path')
environment("NDK_CCACHE", ndkCcache)
}
android {
...
buildTypes {
release {
...
}
debug {
...
externalNativeBuild {
cmake {
arguments '-DENABLE_CCACHE=ON'
}
}
}
}
}
첫 번째 처리는 NDK_CCACHE
환경 변수가 정의되지 않았을 때local.properties
의 ccache.path
값, 정의NDK_CCACHE
환경 변수의 처리이다.(안드로이드 스튜디오에서gradle을 실행하면 ~/.bashrc와 ~/.zshrc의 환경 변수를 얻을 수 없기 때문에 이러한 처리를 실시했다.)local.properties
의 샘플은 다음과 같다.
local.properties...
ccache.path=/usr/local/bin/ccache
Debug를 구축할 때만ccache를 유효하게 하기 위해서 android.buildTypes.debug.externalNativeBuild.cmake.arguments
에서 -DENABLE_CCACHE=ON
설정했습니다.Release 빌딩에서ccache를 사용할 때 android.buildTypes.release.externalNativeBuild.cmake.arguments
를 -DENABLE_CCACHE=ON
로 설정하십시오.
build
그럼 여기서 끝내도록 하겠습니다.즉시 구축해서 ccache가 유효한지 확인하십시오../gradlew clean assembleDebug
./gradlew clean assembleDebug # キャッシュ有効かの確認
ccache -s
두 번째./gradlew
가 빠르거나ccache -s
고속 캐시hit의 통계가 나오면ccache가 유효합니다.
축하합니다.
Reference
이 문제에 관하여(안드로이드 NDK에서 ccache 활성화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TNaruto/items/cfbc52e3bb8046bc9337
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
% sudo apt-get install ccache
% brew install ccache
% ccache -M 20G
# ccache
export USE_CCACHE=1
export NDK_CCACHE=/usr/local/bin/ccache # Ubuntu なら /usr/bin/ccache
export CCACHE_CPP2=yes
export CCACHE_COMPILERCHECK=content
% source ~/.bashrc (or ~/.zshrc)
환경 변수
USE_CCACHE
와 NDK_CCACHE
를 설정하면 ndk-build는ccache를 사용합니다.평소와 같이 ndk-build 명령을 실행할 때 캐시됩니다.
% cd /path/to/android_project/jni
% ndk-build
사용 안 함 USE_CCACHE
와 NDK_CCACHE
unset이면ccache가 무효화될 수 있습니다.% unset USE_CCACHE
% unset NDK_CCACHE
% ndk-build
다시 활성화하려면 source 명령을 사용하여 점 파일을 다시 읽거나 USE-를 사용합니다.CCACHE, NDK_CCACHE 환경 변수를 다시 설정하십시오.
캐시 지우기
구축에 실패하거나 캐시 보안이 잘못되면ccache 캐시를 지우십시오.ccache -cC
유효한 Android NDK CMak 방법
최근 몇 년 동안 구축 시스템은 ant
에서 gradle
로, IDE는 Eclipse에서 안드로이드 스튜디오로, NDK 구축도 ndk-build
에서 CMake
로 옮겨졌다.
CMake 구조에서 NDK_CCACHE
환경 변수 설정만 사용하면ccache를 사용할 수 없습니다.
파일럿 오류가 발생한 후 NDK CMake 빌드에서 ccache가 활성화되어 설정 방법에 대해 설명합니다.
(보다 효율적인 설정 방법이 있으면 알려주세요
CMake
NDKCMakeList.txt
에 ccache 설정을 삽입합니다.
CMakeLists.txt
option(ENABLE_CCACHE "Enable ccache?" OFF)
# ccache
if (NOT $ENV{NDK_CCACHE} EQUAL "")
set(CCACHE_EXE $ENV{NDK_CCACHE})
if(ENABLE_CCACHE)
if(CMAKE_C_COMPILER_LAUNCHER)
set(CMAKE_C_COMPILER_LAUNCHER "${CMAKE_C_COMPILER_LAUNCHER}" "${CCACHE_EXE}")
else()
set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_EXE}")
endif()
if(CMAKE_CXX_COMPILER_LAUNCHER)
set(CMAKE_CXX_COMPILER_LAUNCHER "${CMAKE_CXX_COMPILER_LAUNCHER}" "${CCACHE_EXE}")
else()
set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_EXE}")
endif()
endif()
endif()
NDK_CCACHE
환경 변수의 정의CMAKE_C_COMPILER_LAUNCHER
와 CMAKE_CXX_COMPILER_LAUNCHER
설정NDK_CCACHE
의 값(ccache의 전체 경로)이 있으면ndk-build
와ccache의 설정이 공존합니다.그렇지 않으면 find_program(CCACHE_EXE ccache)
에 ccache 명령이 있을 때 더 일반적인 설정을 할 수 있습니다)NDK_CCACHE
환경 변수 성명에 영향을 주지 않고ccache의 유효 무효를 전환할 수 있는 옵션을 추가합니다ENABLE_CCACHE
.
app/build.gradle
app/build.gradledef ndkCcache = System.getenv("NDK_CCACHE")
if (ndkCcache == null) {
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
ndkCcache = properties.getProperty('ccache.path')
environment("NDK_CCACHE", ndkCcache)
}
android {
...
buildTypes {
release {
...
}
debug {
...
externalNativeBuild {
cmake {
arguments '-DENABLE_CCACHE=ON'
}
}
}
}
}
첫 번째 처리는 NDK_CCACHE
환경 변수가 정의되지 않았을 때local.properties
의 ccache.path
값, 정의NDK_CCACHE
환경 변수의 처리이다.(안드로이드 스튜디오에서gradle을 실행하면 ~/.bashrc와 ~/.zshrc의 환경 변수를 얻을 수 없기 때문에 이러한 처리를 실시했다.)local.properties
의 샘플은 다음과 같다.
local.properties...
ccache.path=/usr/local/bin/ccache
Debug를 구축할 때만ccache를 유효하게 하기 위해서 android.buildTypes.debug.externalNativeBuild.cmake.arguments
에서 -DENABLE_CCACHE=ON
설정했습니다.Release 빌딩에서ccache를 사용할 때 android.buildTypes.release.externalNativeBuild.cmake.arguments
를 -DENABLE_CCACHE=ON
로 설정하십시오.
build
그럼 여기서 끝내도록 하겠습니다.즉시 구축해서 ccache가 유효한지 확인하십시오../gradlew clean assembleDebug
./gradlew clean assembleDebug # キャッシュ有効かの確認
ccache -s
두 번째./gradlew
가 빠르거나ccache -s
고속 캐시hit의 통계가 나오면ccache가 유효합니다.
축하합니다.
Reference
이 문제에 관하여(안드로이드 NDK에서 ccache 활성화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TNaruto/items/cfbc52e3bb8046bc9337
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
% unset USE_CCACHE
% unset NDK_CCACHE
% ndk-build
구축에 실패하거나 캐시 보안이 잘못되면ccache 캐시를 지우십시오.
ccache -cC
유효한 Android NDK CMak 방법
최근 몇 년 동안 구축 시스템은 ant
에서 gradle
로, IDE는 Eclipse에서 안드로이드 스튜디오로, NDK 구축도 ndk-build
에서 CMake
로 옮겨졌다.
CMake 구조에서 NDK_CCACHE
환경 변수 설정만 사용하면ccache를 사용할 수 없습니다.
파일럿 오류가 발생한 후 NDK CMake 빌드에서 ccache가 활성화되어 설정 방법에 대해 설명합니다.
(보다 효율적인 설정 방법이 있으면 알려주세요
CMake
NDKCMakeList.txt
에 ccache 설정을 삽입합니다.
CMakeLists.txt
option(ENABLE_CCACHE "Enable ccache?" OFF)
# ccache
if (NOT $ENV{NDK_CCACHE} EQUAL "")
set(CCACHE_EXE $ENV{NDK_CCACHE})
if(ENABLE_CCACHE)
if(CMAKE_C_COMPILER_LAUNCHER)
set(CMAKE_C_COMPILER_LAUNCHER "${CMAKE_C_COMPILER_LAUNCHER}" "${CCACHE_EXE}")
else()
set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_EXE}")
endif()
if(CMAKE_CXX_COMPILER_LAUNCHER)
set(CMAKE_CXX_COMPILER_LAUNCHER "${CMAKE_CXX_COMPILER_LAUNCHER}" "${CCACHE_EXE}")
else()
set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_EXE}")
endif()
endif()
endif()
NDK_CCACHE
환경 변수의 정의CMAKE_C_COMPILER_LAUNCHER
와 CMAKE_CXX_COMPILER_LAUNCHER
설정NDK_CCACHE
의 값(ccache의 전체 경로)이 있으면ndk-build
와ccache의 설정이 공존합니다.그렇지 않으면 find_program(CCACHE_EXE ccache)
에 ccache 명령이 있을 때 더 일반적인 설정을 할 수 있습니다)NDK_CCACHE
환경 변수 성명에 영향을 주지 않고ccache의 유효 무효를 전환할 수 있는 옵션을 추가합니다ENABLE_CCACHE
.
app/build.gradle
app/build.gradledef ndkCcache = System.getenv("NDK_CCACHE")
if (ndkCcache == null) {
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
ndkCcache = properties.getProperty('ccache.path')
environment("NDK_CCACHE", ndkCcache)
}
android {
...
buildTypes {
release {
...
}
debug {
...
externalNativeBuild {
cmake {
arguments '-DENABLE_CCACHE=ON'
}
}
}
}
}
첫 번째 처리는 NDK_CCACHE
환경 변수가 정의되지 않았을 때local.properties
의 ccache.path
값, 정의NDK_CCACHE
환경 변수의 처리이다.(안드로이드 스튜디오에서gradle을 실행하면 ~/.bashrc와 ~/.zshrc의 환경 변수를 얻을 수 없기 때문에 이러한 처리를 실시했다.)local.properties
의 샘플은 다음과 같다.
local.properties...
ccache.path=/usr/local/bin/ccache
Debug를 구축할 때만ccache를 유효하게 하기 위해서 android.buildTypes.debug.externalNativeBuild.cmake.arguments
에서 -DENABLE_CCACHE=ON
설정했습니다.Release 빌딩에서ccache를 사용할 때 android.buildTypes.release.externalNativeBuild.cmake.arguments
를 -DENABLE_CCACHE=ON
로 설정하십시오.
build
그럼 여기서 끝내도록 하겠습니다.즉시 구축해서 ccache가 유효한지 확인하십시오../gradlew clean assembleDebug
./gradlew clean assembleDebug # キャッシュ有効かの確認
ccache -s
두 번째./gradlew
가 빠르거나ccache -s
고속 캐시hit의 통계가 나오면ccache가 유효합니다.
축하합니다.
Reference
이 문제에 관하여(안드로이드 NDK에서 ccache 활성화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/TNaruto/items/cfbc52e3bb8046bc9337
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
option(ENABLE_CCACHE "Enable ccache?" OFF)
# ccache
if (NOT $ENV{NDK_CCACHE} EQUAL "")
set(CCACHE_EXE $ENV{NDK_CCACHE})
if(ENABLE_CCACHE)
if(CMAKE_C_COMPILER_LAUNCHER)
set(CMAKE_C_COMPILER_LAUNCHER "${CMAKE_C_COMPILER_LAUNCHER}" "${CCACHE_EXE}")
else()
set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_EXE}")
endif()
if(CMAKE_CXX_COMPILER_LAUNCHER)
set(CMAKE_CXX_COMPILER_LAUNCHER "${CMAKE_CXX_COMPILER_LAUNCHER}" "${CCACHE_EXE}")
else()
set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_EXE}")
endif()
endif()
endif()
def ndkCcache = System.getenv("NDK_CCACHE")
if (ndkCcache == null) {
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
ndkCcache = properties.getProperty('ccache.path')
environment("NDK_CCACHE", ndkCcache)
}
android {
...
buildTypes {
release {
...
}
debug {
...
externalNativeBuild {
cmake {
arguments '-DENABLE_CCACHE=ON'
}
}
}
}
}
...
ccache.path=/usr/local/bin/ccache
그럼 여기서 끝내도록 하겠습니다.즉시 구축해서 ccache가 유효한지 확인하십시오.
./gradlew clean assembleDebug
./gradlew clean assembleDebug # キャッシュ有効かの確認
ccache -s
두 번째./gradlew
가 빠르거나ccache -s
고속 캐시hit의 통계가 나오면ccache가 유효합니다.축하합니다.
Reference
이 문제에 관하여(안드로이드 NDK에서 ccache 활성화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/TNaruto/items/cfbc52e3bb8046bc9337텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)