【问题标题】:How to make a library in c++ in linux如何在linux中用c++制作一个库
【发布时间】:2012-01-05 07:47:29
【问题描述】:

我正在用 c++ 编写一个小型应用程序,对此我有一些疑问。我基本上是一名 Java 开发人员,现在正在转向 C++。

    1234563 /li>
  1. 我在 linux 中安装了一些库或软件。之后,如果我在终端中输入,它会 ping 软件。例如php,安装后可以从终端使用php。这是如何运作的?我可以使用我的简单 c++ 项目来执行此操作吗?

【问题讨论】:

    标签: c++ linux package


    【解决方案1】:

    1) Q1 的答案是使用静态链接的库进行编译。例如使用 gcc 编译器:

    # gcc -static myfile.c -o myfile

    2) Q2 的答案是将可执行文件的绝对路径附加到 $PATH 环境变量。例如在 Bash shell 中:

    # export PATH=${PATH}:/home/user/pathofexecutable

    上述设置仅对您所做的那个终端是临时的。要使其可用于您机器中的所有终端,请将上述导出命令添加到 /home/user/.bashrc 文件中。

    【讨论】:

      【解决方案2】:
      1. 是的。您使用一个称为静态链接的过程,它将所有库链接到一个大的可执行文件中。在 ./configure 脚本(来自 autotools)中,您使用 --enable-static 标志。在构建程序时,您使用-static 标志。静态库是带有.a 后缀的库;共享库使用.so,有时带有版本号后缀)。

      2. PHP 不是一个库,它是一种提供自己的命令行界面的语言(即可执行文件)。您的 C++ 可执行文件也可以类似地工作,您只需从cin(在<iostream>)获取输入并将结果写入cout,使用cerr 获取错误消息。

      您的标题问题“如何在 linux 中使用 c++ 制作库”(与使用库相反):您使用 ar 程序将多个 .o 文件链接到单个 .a 库文件中。您还可以使用ranlib 清理.a 文件。请阅读 man 页面了解这些命令的使用方式。

      【讨论】:

        【解决方案3】:

        对于问题 1,您希望将程序编译为静态可执行文件。 (只需将 -static 传递给 g++。)它会使程序变得更大,因为它需要包含通常作为库保存的内容的副本。

        对于问题 2,我很确定您的意思是在 PATH 中有一个程序。键入echo $PATH 以查看当前机器上的路径。如果您将程序安装在这些目录之一中,它将从任何地方运行。 (很可能是/usr/local/bin/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-08-09
          • 1970-01-01
          • 1970-01-01
          • 2013-06-21
          • 2010-11-13
          • 2020-09-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多