编译机环境管理方法

编译机环境管理方法 #

以用户的方式管理 #

说明 #

  1. 创建一个compiler用户
    • 这个用户用于系统默认编译器的的编译
    • 该用户的家目录下存放所有代码
    • 所有添加的其他编译用户都处于compiler中户组(给compiler设置 SGID 可以使其下面的文件夹都默认处于compiler组里)
    • 该用户家目录的所有代码都要给组用户写权限
  2. 创建用户,以 NDK 为例,%%android-ndk-r13b-linux-x86_64 对应的用户名 android-ndk-r13
  3. 将编译器安装在对应的用户家目录中
  4. 将需要的环境变量配置在用户的.bash_prefile
  5. 配置umask,给组与用户同样的权限

演示配置 android-ndk-r13 用户 #

# adduser android-ndk-r13 -g compiler
# echo "umask 002" >> /home/android-ndk-r13/.bashrc
# su - android-ndk-r13
# unzip android-ndk-r13b-linux-x86_64.zip

配置环境变量 #

~/bash_prefile中添加下面

export NDKROOT=/home/android-ndk-r13/android-ndk-r13b
export PATH=$NDKROOT:$PATH

INSTALLATION_PATH=/home/output/android-ndk-r13
export prefix=$INSTALLATION_PATH

export ANDROID_HOME=~/android-ndk-r13b
export TOOLCHAIN=$ANDROID_HOME/android-toolchain
export CROSS_SYSROOT=$TOOLCHAIN/sysroot
export PATH=$TOOLCHAIN/bin:$PATH
export TOOL=arm-linux-androideabi
export CC=$TOOLCHAIN/bin/${TOOL}-gcc
export CXX=$TOOLCHAIN/bin/${TOOL}-g++
export LINK=${CXX}
export LD=$TOOLCHAIN/bin/${TOOL}-ld
export AR=$TOOLCHAIN/bin/${TOOL}-ar
export RANLIB=$TOOLCHAIN/bin/${TOOL}-ranlib
export STRIP=$TOOLCHAIN/bin/${TOOL}-strip
export ARCH_FLAGS="-mthumb"
export ARCH_LINK=
export CFLAGS="${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64"
export CXXFLAGS="${CFLAGS} -frtti -fexceptions"
export LDFLAGS="${ARCH_LINK}"

参考资料 #

linux下如何实现不同的用户对同一文件都有写权限
Linux系统之文件的SUID、SGID、Sticky权限说明