Leonidas's Blog

其次致曲,曲能有诚。诚则形,形则著,著则明,明则动,动则变,变则化。唯天下至诚为能化。

动态库编程

动态库编程 简介 应用程序很少作为一个单一代码模块来实现,因为操作系统实现了应用程序在库中需要的大部分功能。为了开发应用程序,程序员将他们的自定义代码链接到这些库中,以获得基本的功能,比如编写标准输出或使用显卡绘制复杂_的能力。然而,链接到库会创建很大的可执行文件并浪费内存。减少应用文件大小和内存占用的一种方法是减少应用启动时加载的代码量。 要在运行时加载动态库,应用程序应该使用一组高...

X11 Notes

X11 Notes X11是Linux/Unix机器(包括Thayer的Linux机器)使用的远程显示协议。 通过在计算机上运行X11程序(服务器),您可以通过SSH客户端远程访问图形化Linux程序。 此外,许多移植到macOS的Linux/Unix应用程序不能在macOS GUI上本地运行,而是需要X11。 术语说明:在本地计算机上显示图形的程序称为X服务器,远程端上的进程称为X客户...

X11 中Region的概念

X11 中Region的概念 region.c文件中的函数实现了X11示例服务器中广泛使用的Region抽象。一个Region包括: 一组不相交(不重叠)的矩形 一个“扩展(extent)”矩形,它是包含所有不重叠矩形的最小单个矩形。 Region实现为矩形的“ y-x-banded”数组。 此数组强加两个顺序。 首先,首先按顶部y坐标(y1),然后按左侧x坐标(x1)对所...

Linux X11 Notes

Linux X11 Notes X11 在X Window系统(X11,或简称X)是一个窗口系统为位图显示器,常见于类Unix 操作系统。 X提供了GUI环境的基本框架:在显示设备上绘制和移动窗口以及与鼠标和键盘进行交互。X并不要求用户界面–这是由单独的程序处理的。因此,基于X的环境的视觉样式差异很大。不同的程序可能呈现完全不同的界面。 X使用客户端-服务器模型:X服务器与各种客...

项目知识盲点汇总

项目知识盲点汇总 C++ 在此记录我在VDI项目中与不熟悉的C++交手时遇到的一些问题,经research后找到的答案,以便之后遇到类似问题能快速找到答案,毕竟记性太差了😭。 C 库函数 - fprintf() stderr/stdout 重定向到文件 C++中头文件与源文件的作用详解 Difference between NSLog and Printf statement f...

如何使用Mac 控制台来分析Crash

如何使用Mac 控制台来分析Crash 你的Mac电脑可能基本上没有什么问题,至少大多数时候是这样。但偶尔你可能会遇到系统、进程或应用程序崩溃,使你无法继续工作。这些崩溃通常是短暂的,只需重新启动应用程序或重启Mac就可以解决。 虽然偶尔的崩溃会让人沮丧,但通常不需要太担心。事情发生了,你可以把它看作是你有一个好的备份系统的众多原因之一。(你知道,不是吗?) 现在,当一个崩溃开始在更有...

@rpath 报错

@rpath 报错 简而言之:发生了动态链接。 动态链接:是指当代码的一部分跨不同的文件(称为库)传播,并且库的二进制内容在运行时加载时,就会发生这种操作。 动态链接器(dynamic linker,一个系统工具)在动态库中找到一个符号(例如,函数)。接下来,将代码加载到内存中,并使用符号分配内存地址。通过这种方式,运行程序可以找到存储在外部库(共享库)中的符号的实现。动作发生在程序执...

Cocoa插件编程

Cocoa插件编程 前言 对于希望构建模块化、可定制且易于扩展的应用程序的开发人员来说,插件体系结构是一个很有吸引力的解决方案。对于许多开发人员来说,一种允许第三方在不访问源代码的情况下向应用程序添加特性的聪明方法已经发展成为成熟的组件体系结构。Core Foundation插件使用Core Foundation bundle的基本代码加载工具为OS X应用程序提供标准的插件架构。虽然本...

XCode的构建配置文件

XCode的构建配置文件 软件开发最佳实践规定了配置与代码的严格分离。然而,苹果平台上的开发人员常常很难将这些指导原则与Xcode项目繁重的工作流程结合起来。 了解每个项目设置的功能以及它们之间的相互作用是一项需要多年磨练的技能。事实上,很多信息都深埋在Xcode的gui中,这对我们没有任何好处 导航到“project editor”的“Build Settings”选项卡,你会看到成...

关于可加载的Bundle

关于可加载的Bundle 可加载的Bundle(Loadable)是可执行代码和相关资源的包,可以在运行时加载。这种灵活性允许您设计高度模块化、可定制和可扩展的应用程序。阅读本文后,您将了解可加载的包是如何构造的,以及何时使用它们。 可加载bundle的介绍 OS X在整个系统中使用一个名为bundle的目录结构来打包可执行代码和相关资源。bundle目录本质上是将一组资源打包在一个独...