如何在Linux中使用C++编写库
我正在用C++编写一个小应用程序,我对此有一些疑问。我基本上是一个Java开发人员,现在正在转向C++。如何在Linux中使用C++编写库
如果我使用像升压一些图书馆,卷曲等我可以使它无需安装客户端机器上运行(我的意思是这样,包括在Java项目中的所有库jar文件)
我已经在linux中安装了一些库或软件。之后,如果我输入终端,它会对软件进行排序。例如,PHP,安装它后,你可以从终端使用PHP。这个怎么用?我可以使用我的简单C++项目来做到这一点吗?
是的。您使用一个名为的进程,它将所有库链接成一个大的可执行文件,并将其链接到。在
./configure
脚本(来自autotools)中,您使用--enable-static
标志。在构建程序时,使用-static
标志。静态库是后缀为.a
的库;共享库使用.so
,有时使用版本号后缀)。PHP不是一个库,它是一种语言(即可执行文件),它提供了自己的命令行界面。您的C++可执行文件可以类似工作,您只需从
cin
(在<iostream>
中)获取输入并将结果写入cout
,并使用cerr
获取错误消息。
你的标题问题,“如何使在C++库在Linux”(而不是使用库):您可以使用ar
程序来几个.o
文件链接到一个单一的.a
库文件。您也可以使用ranlib
来清理.a
文件。请阅读man
页面以了解这些命令的用法。
对于问题1,您希望将程序编译为静态可执行文件。 (只需将-static
传给g ++)。它会使程序大得多,因为它需要包含通常保存为库的东西的副本。
对于问题2我很确定你的意思是在PATH
中有一个程序。键入echo $PATH
以查看当前计算机上的路径。如果您将程序安装在其中一个目录中,它将从任何地方运行。 (最有可能的是/usr/local/bin/
)
1)对你的Q1的回答是静态链接库的编译。例如用gcc编译器:
#gcc的-static myfile.c文件-o MYFILE
2)答案给你Q2被追加到$ PATH环境变量的可执行文件的绝对路径。例如,在Bash shell中:
#出口PATH = $ {PATH}:/ home/user中/ pathofexecutable
上述设置只为你做终端是暂时的。为了让你的机器上的所有终端都可以使用,可以将上面的导出命令添加到/home/user /。bashrc文件。