小众开发者 #Swift #Themes  Docker  Github
< Code is code />
  • CMake 跨平台编译

    Apr 26, 2022

    使用自定义的 toolchain 文件进行配置: CMAKE_TOOLCHAIN_FILE cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/toolchain.cmake 跨平台编译需要指定 sysroot 的位置,编译器和链接器才能正确找到 include 和 lib。 和 sysroot 配置相关的有三个变量: CMAKE_SYSROOT CMAKE_SYSROOT_COMPILE CMAKE_SYSROOT_LINK CMAKE_SYSROOT 除了传递 --sysroot 标志给编译器外,还会影响 find_* 命令的查找路径。 …

    CMake

  • 使用 Emscripten 编译 WASM 版本的 BoringSSL

    Apr 22, 2022

    需要先安装 go。 链接选项需要添加 -s INITIAL_MEMORY=48MB -s ALLOW_MEMORY_GROWTH=1 ,否则 wasm-ld 会提示内存太小而失败。 $ git clone https://github.com/google/boringssl.git cd boringssl emcmake cmake -S . -B build -G Ninja \ -DCMAKE_BUILD_TYPE="Release" \ -DCMAKE_INSTALL_PREFIX=$(pwd)/../vendor \ -DCMAKE_CXX_LINK_FLAGS="-s INITIAL_MEMORY=48MB -s ALLOW_MEMORY_GROWTH=1" \ -DOPENSSL_NO_ASM=ON emmake ninja -C build ninja -C build install

    EmscriptenBoringSSL

  • 使用 Emscripten 编译 WASM 版本的 OpenSSL

    Apr 21, 2022

    安装 Emscripten 工具链: git clone --depth 1 https://github.com/cntrump/emscripten-toolchain.git cd emscripten-toolchain ./install.sh /opt/local 添加 Emscripten 到 PATH 系统环境变量中: export PATH=/opt/local/emsdk/emscripten:$PATH 开始编译 OpenSSL: git clone --depth 1 -b OpenSSL_1_1_1n https://github.com/openssl/openssl.git cd openssl emconfigure ./Configure linux-generic64 --prefix=$(pwd)/../system sed -i'.bak' 's|^CROSS_COMPILE.*$|CROSS_COMPILE=|g' Makefile emmake make -j build_generated libssl.a libcrypto.a mkdir -p ../system/include mkdir -p ../system/lib # 复制 include 和 lib cp -a include/openssl ../system/include cp libssl.a libcrypto.a ../system/lib 参考资料 wasm-ports/openssl.sh …

    EmscriptenOpenSSL

  • 备份 Parallels Desktop 的授权文件

    Apr 21, 2022

    保存 licenses.json 文件,不需要登录帐户可以激活 Parallels Desktop。 /Library/Preferences/Parallels/licenses.json

    Parallels Desktop

  • 使用 sed 命令移除文件里的空行

    Apr 20, 2022

    sed -i'.bak' -E '/^$/d' a.csv 适用 Linux 和 macOS。 Tips Linux 和 macOS 上的 sed 命令的 -i 参数有一点差异: 在 Linux 上,-i 后面可以没有参数,如果有必须紧接在后面,中间不能有空格: # 不备份源文件 sed -i sed -i'' # 备份源文件 sed -i'.bak' 在 macOS 上,-i 后面必须有空格,除非指定了不为空的后缀名: …

    Shell

  • 免密码用 sudo 执行命令

    Apr 06, 2022

    默认情况下,使用 sudo 执行命令的时候需要输入当前用户的密码。 如果希望免输入密码执行,可以这样配置: 在 sudoers.d/ 目录下新建一个文件,名称无所谓,内容如下: 对于用户组 admin 免密码: …

    macOSLinux

  • Ubuntu 安装最小的 Gnome 桌面环境

    Mar 31, 2022

    如果直接安装官方的 Desktop 镜像,虽然得到开箱即用的最佳体验,但是也安装了一些不必要的应用。 在 Server 镜像上安装桌面环境,可以得到一个最纯粹的桌面系统。 TL;DR sudo apt-get --no-install-recommends install \ ubuntu-gnome-desktop network-manager yaru-theme-gtk gnome-tweaks epiphany-browser \ fonts-noto fonts-noto-mono fonts-noto-cjk fonts-noto-color-emoji 安装最小化的桌面环境 安装 Server 版本的系统: Ubuntu Server 安装桌面环境: sudo apt-get --no-install-recommends install ubuntu-gnome-desktop 安装网络管理工具,用于在系统里配置网络代理、宽带拨号设置等,浏览器使用的是网络配置里的代理信息: sudo apt-get --no-install-recommends install network-manager 安装 Google Noto 字体,包含了 CJK 字体,避免汉字显示为豆腐块: sudo apt-get --no-install-recommends install \ fonts-noto fonts-noto-mono fonts-noto-cjk fonts-noto-color-emoji 安装系统深色主题,因为最小化桌面环境只有浅色主题: sudo apt-get --no-install-recommends install yaru-theme-gtk 安装 Gnome Teaks 工具,可以很方便的配置系统: sudo apt-get install gnome-tweaks 安装 Gnome 浏览器: sudo apt-get --no-install-recommends install epiphany-browser

    UbuntuGnome

  • 可以替代 OracleJDK 的 OpenJDK 版本

    Mar 30, 2022

    OracleJDK 开发、测试是免费的,但是运行在生产环境下是需要付费授权。 OpenJDK 不仅开源而且完全免费使用。 Azul Zulu Builds of OpenJDK https://www.azul.com/downloads/?package=jdk#download-openjdk Liberica JDK https://bell-sw.com/pages/downloads/ Adoptium (AdoptOpenJDK) https://adoptium.net/temurin/releases Red Hat build of OpenJDK https://developers.redhat.com/products/openjdk/download

    JDK

  • 安装 DEB 安装包并自动安装依赖

    Mar 26, 2022

    有时候会遇到软件厂商或者作用只提供了 deb 格式的软件安装包,但还需要额外是依赖库才能正常运行。 直接使用命令 dpkg -i *.deb ,是不能处理 deb 里定义的依赖关系的。 正确做法是使用 apt 安装 deb 文件: …

    DebianUbuntu

  • 建立私有软件的 apt 仓库

    Mar 24, 2022

    使用私有软件源可以很方便的安装自己开发或者编译的软件。 第三方软件源的存放在 /etc/apt/sources.list.d 目录: 创建一个软件源文件: /etc/apt/sources.list.d/swift-toolchain.list 软件源文件的内容如下: deb http://127.0.0.1/repo swift-toolchain main 以上几部分拆开来解析: …

    aptDebianUbuntu

  • 16
  • 17
  • 18
  • 19
  • 20

©2021 lvvme.

Powered by Hugo & Notepadium ipv6 ready