Tag: C程序

使用和创建C静态库

随着C程序的发展,您开始具有许多不同的功能。 这会变得凌乱! 当需要在编译过程中进行链接时,计算机将不得不处理许多目标文件,这使其效率低下。 减少总时间并提高效率的一种方法是利用C库。 AC库包含可链接并用于执行特定任务的功能列表。 无需调用许多不同的文件,您可以引用单个库。 使用此方法将优化编译过程,其原因有两个: 1)由于C库已建立索引,因此很容易找到所需和应链接的符号,例如函数和变量。 2)C库将所有功能放在一个位置,从而在链接过程中打开的文件较少。 UNIX系统允许我们创建2种C库。 静态和共享 。 (在此博客文章中,我将只讨论静态库) 静态库是直接链接到可执行文件中的函数的集合(如前所述)。 因此,当需要运行该文件时,您只需要一个文件。 之所以称其为“静态”,是因为可执行文件现在将保持不变,除非您要操纵该库并重新对其进行编译。 要创建静态库,您想使用2个命令。 第一个是: ar命令是“ archiver”的缩写,它用于创建静态库“ sonialib.a”。该命令后的* .o仅指示该库中应包含当前工作目录中的所有.o文件。 在ar之后添加的c标志告诉它创建库,无论它是否存在。 然后, r标志告诉它用新的替换旧的目标文件。 创建存档后,便需要对库进行索引。 这是使用ranlib命令完成的: 创建存档后,您现在可以在程序中使用它了。 如前所述,要使用库,您需要在编译期间将其链接。 此命令行将编译您的c文件,并使用sonialib中找到的所有必要符号。 –L。 标志告诉链接器,可以在任何给定目录中找到sonialib。 在编译过程中,使用静态库是更有效的选择,因为所有目标文件都直接放置在可执行文件中。 但是,如果您要对程序进行更改,那么它通常会被认为是效率低下的库,因为每次更改时都必须重新编译和链接文件。

迁移到C ++中的CMake,并使其与Xcode一起使用

曾经写过一个Makefile吗? 糟透了 使用cmake与Xcode 10.1一起使用。 这里(https://mirkokiefer.com/cmake-by-example-f95eb47d45b1)已经是一个很好的指南-我们将在此处填写详细信息,并使其与Xcode一起使用。 具体来说,我们将构建一个动态库。 制作一个CMakeLists.txt文件,并将其添加到顶部。 cmake_minimum_required(版本3.1) 设置(CMAKE_CXX_STANDARD 14) 设置(CMAKE_CXX_STANDARD_REQUIRED ON) 设置(CMAKE_CXX_EXTENSIONS OFF) 其中设置了所需的版本以及C++标准。 为您的项目命名: 项目(myproject) 添加动态库的源文件: add_library(myproject共享src / file1.cpp src / file2.cpp) 然后安装目标: 安装(TARGETS myproject DESTINATION lib) 安装(文件包括/file1.hpp目的地包括) 安装(目录包括/目录1目的地包括) 第一行将库安装到/usr/local/lib ,接下来的两个将文件或整个目录安装到/usr/local/include 。 而已! 使用方法: mkdir构建 光盘制作 cmake .. //您现在在构建目录中有一个Makefile make //该库现在位于构建目录libmyproject.dylib中 make install //安装库和头文件 Xcode呢? 超级简单: cmake .. -GXcode 现在,您在构建目录中有myproject.xcodeproj ! 点击运行,它将立即ALL_BUILD (确保运行按钮旁边顶部的目标是ALL_BUILD […]