• 第三次挑战 llc

    每次进行 LLVM 开发,都会浪费 3min 的构建时间。 $ time ninja -C build modc ninja: Entering directory `build' [2/2] Linking CXX executable modc real 3m10.

  • 收藏夹

    一个垃圾爱好者的收藏夹 没有实现目录 外部引用 (external reference) 星姐姐的收藏夹 软件集合 suckless https://suckless.org/ suckfull GNU Software https://www.

  • 使用 Freebsd Current

    FreeBSD Current 是 FreeBSD 源码树的最新开发版本,不稳定,且从源码更新。 这里从 Freebsd 手册 翻出更新 FreeBSD Current 的方法。 目前,FreeBSD 源码树移动到了 git 托管,地址是 https://git.

  • FreeBSD Ports - 如何给 FreeBSD 打包

    FreeBSD Ports 系统使用 Makefile 来描述软件包信息。相比 Arch Linux Buildsystem 来说,FreeBSD Ports 灵活性非常差,要打个包比较恶心。 ${WRKSRC} - 是软件包源码解压的地方,一般是 work/软件包名 $STAGEDIR - 是打包用的小系统目录,软件包编译后安装在这个目录用来打包,一般是 work/stage work/pkg 中存放 make package 生成的 pkg 包文件 准备 Makefile 一般来说,最小 Makefile 模板是这样:

  • Windows 控制台应用程序隐藏控制台

    blender 的早期版本中,启动 blender 后会先显示一个控制台窗口,接着消失,弹出新的窗口。也许意味着控制台应用程序是可以隐藏控制台的。功夫不负有心人,找到了几种解决方法: 1 - 控制控制台窗口 ShowWindow(GetConsoleWindow(), SW_HIDE); 需要用到两个 Windows API: ShowWindow 设置指定窗口显示状态 GetConsoleWindow 返回控制台窗口句柄 获取控制台窗口句柄,然后修改他的显示状态。 但是官网不建议继续使用 GetConsoleWindow 接口。

  • 编译 linux 内核相关的问题

    在 Arch Linux 上,编译 Linux 内核需要依赖两个默认没有提供的工具: bc: An aribitrary precision calculator language (https://www.gnu.org/software/bc/) cpio: A tool to copy files into or out of a cpio or tar archive (https://www.

  • Java 程序启动

    你们说,带群友翻 jdk 代码会不会很酷? 拜托,超酷的好不好。 假设 首先假设在工作目录中指定并启动编译好的主类: $ java MainClass 至于 jar 包,你用压缩软件打开,然后打开文件 META-INF/MANIFEST.MF,里面 Main-Class 那一行就写着主类:

  • Blackarch 脚本两则

    sysclean.sh - 清理系统 #!/bin/sh # 清理孤包 # pacman -Rscn # -R 删除 # -s 包括目标包的依赖 # -c 包括依赖目标包的包 # -n 忽略文件备份 # -Q 查询 # -t 查询孤包 不再被依赖或可选依赖的包 # -d 查询作为依赖安装的包 # -q 只打印包名(对脚本很有用) pacman -Rscn $(pacman -Qtdq) # 更新源文件 (extra/pkgfile包的 pkgfile) pkgfile -u # 更新 mlocate 数据库 (core/mlocate 包) updatedb pacman-db-upgrade # 清理包缓存 两个 -c 清理缓存中所有文件 yes | pacman -Scc # 同步缓存的写入到持久性存储中 sync tuning.

  • 内核事件通知机制

    当进程持有充分大数量的资源时,如何跟踪资源的状态变成了问题,与其挨个轮询,不妨换一种思路,让内核通知我们。 比如在网络编程的条件下,我们可能会同时处理多种连接,可以使用这种接口让内核通知我们哪些套接字可以读写,传入连接等。 在 FreeBSD 中,使用 kqueue() 相关设施提供事件通知机制。 在 Linux 中,使用 epoll() 相关设施提供事件通知机制。 kqueue kqueue() 需要用到的头文件是:

  • gcc 关于链接库的参数顺序

    现象: buildbot@worker:/buildbot/allbuild/build$ make cc -c -o main.o main.c cc -c -o send.o send.c cc -c -o status.