Linux服务器开发
文章平均质量分 84
# Linux服务器开发
吮指原味张
仙女堡老大护法(。・`ω´・)
展开
-
Linux中静态库和动态库(共享库)的区别
1. 静态库和动态库的制作过程区别1.1 静态库的制作过程详见博客:Linux中静态库的制作与使用1.2 动态库的制作过程详见博客:Linux中动态库(共享库)的制作与使用2. 静态库和动态库在程序编译时使用它们的共同点和区别共同点:如果在程序中使用到了静态库和动态库,那么静态库和动态库都是在程序的链接阶段进行处理。区别:静态库:程序在链接阶段,会将静态库的代码复制到可执行程序中。在可执行程序运行时,直接调用静态库中的代码。动态库:程序在链接阶段,没有将动态库的代码复制到可执行程原创 2021-02-04 12:02:43 · 1339 阅读 · 0 评论 -
Linux中的source命令(.命令)的用法
参考:https://blog.csdn.net/LEON1741/article/details/819448791. 使用格式其使用格式如下,其中filename必须是可执行的脚本文件。source filenamesource通常由.替代,如下命令与source filename是等价的。. filename要注意,.的后面要加一个空格。2. source命令的功能通知当前shell读入路径为filename的文件并依次执行文件中的所有语句。通常用于重新执行刚修改的初始化文件原创 2021-02-03 22:22:57 · 3635 阅读 · 1 评论 -
已解决:动态库加载失败:cannot open shared object file: No such file or directory
1. 问题描述使用动态库编译链接main.c后,得到名为main的可执行程序。但是在运行main可执行程序时,程序报错:./main: error while loading shared libraries: libcalc.so: cannot open shared object file: No such file or directory如下图所示:2. 问题出现的原因可执行程序在加载libxxx.so库时,找不到该库。至于找不到的情况分为两种:系统里根本不存在libxxx.so库;l原创 2021-02-02 23:26:11 · 30311 阅读 · 5 评论 -
Linux中动态库(共享库)的制作与使用
0. 库的基本概念见博客:Linux中静态库的制作与使用0.1 动态库的工作原理1. 动态库的命名规则在Linux系统中,动态库(共享库)的命名格式为:libxxx.so,在Linux下动态库是一个可执行文件。其中:lib:前缀(固定)xxx:库的名称(自己起的).so:后缀(固定)需要注意:libxxx.so是动态库的库文件的名称,xxx是库的名称。2. 动态库的制作2.1 动态库的制作过程gcc得到.o文件,得到和位置无关的代码。命令格式为:gcc -c -fpic/-fP原创 2021-02-02 23:04:23 · 1305 阅读 · 1 评论 -
Linux中静态库的制作与使用
0. 什么是库库文件是计算机上的一类文件,可以简单的把库文件看成一种代码仓库(二进制代码),它提供给使用者一些可以直接拿来用的变量、函数或类。库是特殊的一种程序,编写库的程序和编写一般的程序区别不大,只是库不能单独运行。库文件有两种,静态库和动态库(共享库)。它们的区别是:静态库在程序的链接阶段被复制到了程序中;动态库在链接阶段没有被复制到程序中,而是程序在运行时由系统动态加载到内存中供程序调用。库的好处: 1.代码保密 2.方便部署和分发1. 静态库的命名规则在Linux系统中,静态库(库原创 2021-01-31 23:43:24 · 953 阅读 · 3 评论 -
gcc与g++的区别;实际开发中何时使用gcc或g++
0. gcc与g++的共同点gcc和g++都是GNU的编译器。1. gcc与g++的区别GCC意为GNU Compiler Collection(GUN 编译套件),它可以编译C、C++、JAV、Fortran、Pascal、Object-C、Ada等语言。gcc是GCC中的GUN C Compiler(C 编译器)。g++是GCC中的GUN C++ Compiler(C++编译器)gcc和g++的主要区别对于 *.c和*.cpp文件,gcc分别当做c和cpp文件编译(c和cpp的语法强度是原创 2021-01-29 23:50:41 · 1018 阅读 · 2 评论 -
gcc的工作流程图以及常用参数选项的代码使用示例
1. GCC工作流程2. GCC常用参数选项。gcc编译选项作用-o [file]指定输出文件的文件名为file。无论是预处理、编译、汇编还是链接,这个选项都可以使用。-E预处理指定的源文件,不进行编译。-S(预处理并)编译指定文件,不进行汇编。(即对.c文件进行-S操作时,既预处理又编译;对.i文件进行-S操作时,只进行编译。)-c预处理、编译和汇编源文件,但是不进行链接。(类比-S)-I directory指定include包含文件的搜索目录原创 2021-01-28 12:57:54 · 538 阅读 · 0 评论 -
已解决:VS Code远程连接Linux服务器,编写C/C++代码时出现:#include错误,请更新includePath
参考:https://blog.csdn.net/weixin_44718794/article/details/1067515131. 问题描述使用VS Code远程连接Linux服务器(自己搭建在虚拟机中的Ubuntu系统)后,编写.c代码时,引用头文件的代码行#include <stdio.h>报错,如下图所示。2. 解决方案通过Xshell连接Linux服务器,执行命令gcc -v -E -x c++ -,查看gcc的路径。复制下图红框中的内容。在VS Code中按Ctr原创 2021-01-27 15:37:19 · 5702 阅读 · 6 评论 -
如何在搭建好的Linux开发环境中开发C/C++
如何搭建Linux开发环境请参见:Linux开发环境搭建;在Window系统中通过虚拟机安装Linux系统(Ubuntu)1. 安装GCC编译套件1.1 什么是GCCGCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言译器(编译器)。GNU编译器套件包括C、C++、 Objective-C、 Fortran、Java、Ada和Go语言前端,也包括了这些语言的库(如libstdc++,libgcj等。)GCC的初衷是为GNU操作系统专门编写的一款编译器。原创 2021-01-27 14:47:11 · 462 阅读 · 0 评论