ZBLOG

帮我把下面md语法的内容改写为reStructuredText语法 # 编译和安装 common 库是一个 C++ 库,提供了一些常用工具和模块。本文介绍如何编译和安装 common 库,并将它添加到环境变量中,以便用户可以方便地使用它。 ## 系统要求 - Linux 或 macOS 或 Windows,当前仅在Linux(x86_64)完成了对CMake构建系统的测试。 - CMake 3.5 或更高版本。 ## 下载源代码 common 库的源代码托管在**工蜂**上。...

编译和安装

common 库是一个 C++ 库,提供了一些常用工具和模块。本文介绍如何编译和安装 common 库,并将它添加到环境变量中,以便用户可以方便地使用它。

系统要求

  • Linux 或 macOS 或 Windows,当前仅在Linux(x86_64)完成了对CMake构建系统的测试。
  • CMake 3.5 或更高版本。

下载源代码

common 库的源代码托管在工蜂上。在拥有此项目的访问权限后,可以使用 git 命令克隆源代码库到本地进行开发使用。

编译和安装

#. 进入源代码目录:

::

  cd common

#. 创建 build 目录并进入:

::

  mkdir build
  cd build

#. 执行 cmake 命令生成 Makefile:

::

  cmake ..

如果您需要为编译过程指定其他选项,可以在 cmake 命令后加上它们,例如:

::

  cmake -DCMAKE_INSTALL_PREFIX=/path/to/install ..

通过在 cmake 命令中指定 CMAKE_INSTALL_PREFIX 变量自定义安装路径。我们建议用户使用此命令自定义安装路径而不是安装到系统目录如 /usr/local

#. 执行 make 命令编译 common 库:

::

  make

编译完成后,您可以执行以下命令安装 common 库:

::

  sudo make install

假设在第三步没有自定义安装路径,则安装过程会将编译好的共享库静态库以及头文件复制到系统默认路径中。在 Linux 系统中默认路径为 /usr/local,在 Windows 系统中默认为 C:\Program Files\<project>

#. 添加到环境变量

因为在编译过程中同时提供了共享库和静态库,当您的程序编译时想使用共享库,则需要确保第四步中库的安装路径添加到环境变量中。

假设库的安装路径为 Linux 系统中的默认路径,可使用 export 命令来暂时修改环境变量:

::

  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

要查看LD_LIBRARY_PATH环境变量的值,可以使用 echo 命令:

::

  echo $LD_LIBRARY_PATH

此外,还可以将需要设置的环境变量添加到用户的 .bashrc 文件中,该文件在用户每次登录时都会被读取。假设您使用的是 bash shell,可以在 ~/.bashrc 文件中加入以下行:

::

  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

保存文件并重新加载 .bashrc 文件以使更改生效:

::

  source ~/.bashrc

这将使系统能够找到所需的动态库并将其加载到应用程序中。

使用示例

现在您已经成功地安装了 common 库,可以在自己的项目中使用它了。假设您有一个示例程序 example.cpp,需要使用 common 库中的 logger 模块。

#. 在 example.cpp 中包含 MyTool 的头文件:

::

  .. code-block:: cpp

     #include <aicommon/logger/logger.h>

#. 在编译命令中链接 aicm_logger 库:

::

  g++ example.cpp -o example -laicm_logger

这个命令将编译 example.cpp 并动态链接 aicm_logger 库。假设您想链接动态库,则在上述编译命令加上 -static 选项。

#. 此外,还可以使用 CMake 构建项目,以下是 CMakeLists.txt 的示例:

::

  cmake_minimum_required (VERSION 3.5)

  project (demo)

  set (SRC_LIST example.cpp)

  find_library(LOGLIB aicm_logger HINTS /usr/local/lib)

  add_executable(example ${SRC_LIST})
  target_link_libraries(example ${LOGLIB})

说明

common 库提供了很多模块,但是并不是每一个模块在编译时都生成了动静态库,有些模块由于只有.h文件实现,无法编译为动态库和静态库,因此只需将对应头文件包含到项目中即可,具体说明如下:

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=2510

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?