对C++引用库的理解
情景 创建两个静态库 libA 和 libB,libB依赖libA。创建一个程序App引用 libB 关系为:App -> libB -> libA 一般做法是: 创建完libA后编译生成静态库,创建libB时引用该静态库并将libA的头文件复制到libB项目中进行引用。 App对libB的引用也是导入它的静态库和头文件。 可不可以不用头文件? 可以,头文件 …
Section
情景 创建两个静态库 libA 和 libB,libB依赖libA。创建一个程序App引用 libB 关系为:App -> libB -> libA 一般做法是: 创建完libA后编译生成静态库,创建libB时引用该静态库并将libA的头文件复制到libB项目中进行引用。 App对libB的引用也是导入它的静态库和头文件。 可不可以不用头文件? 可以,头文件 …
问题描述 使用vs2022创建了一个静态库,欲在qt程序中使用,结果报 undefined reference to xxx 错误,这里的xxx就是静态库中定义的方法。可以保证: 已经正确配置依赖并添加头文件 在vs中创建一个示例程序并引入该lib发现可以正常使用 由于对c++生态不太熟,做此记录 问题原因 vs使用的是msvc编译器,而qtcreator中 …
素材来源于网络
我记得电影《大空头》中,主角一行人之所以能预测房市泡沫即将破裂,是因为他们发现当时的房贷很容易得到。由于当时房地产市场被炒得火热,他们调查发现,就算一个妓女手上也有很多房产。银行被房市冲昏了头,使得房贷极易获得。他们想去走访某个申请了房贷的用户,结果发现该用户只是某个人家中一条狗的名字——银行贷款条件宽松到根本不会做任何调查了。 我觉得目前程序员行业也有点类 …
从打包方式来看,分为debug和release包(项目构建方式) 从依赖方式来看,分为静态链接和动态链接(处理项目依赖的方式) 从程序用途来看,分为exe、lib、dll(最终生成产物) 它们之间互相交叉组合打包 Step 1:配置库依赖(若项目中有依赖第三方的库,NuGet的不需要) Step 2:配置管理器中选择编译类型(默认是debug,打出来的就只有 …
这些都是c/c++编译运行时期所产生的文件,作为一个没用过这门语言的人很容易搞混。 简单分类 简单分三类,也就是三个过程需要的文件 .h/.cpp/.hpp/.c:代码源文件 .o/.obj/.lib/.a:编译过程需要的文件 .dll/.so/.exe:运行过程需要的文件 源代码 cpp 与 c .cpp和.c分别为c++和c的源代码文件。早期都只用.c文 …
发生了什么? 普通用户(在docker用户组中)通过docker创建了一个文件,结果显示该文件的所有者却是root,且该普通用户已无权删除该文件: 接着,我又使用root用户在宿主机直接创建一个文件: 然后切换回普通用户,再使用docker去删除该文件: 再回头看该文件: 发现该文件已经被删除了。 是不是有种细思极恐的感觉:普通用户只要通过docker就能以 …
素材来源于网络
windows下用户目录中有个 AppData 目录,该目录下有三个子目录 Local、LocalLow、Roaming 在C盘下还有一个 ProgramData 的目录,另外还有 Program Files、Program Files (x86) 这三个目录 注:上述 AppData、ProgramData目录默认是隐藏的,可按以下设置查看 有时候安装程序 …
过程实际上很简单,就是两步 引入 .h 头文件告诉我第三方库提供了哪些方法(就好比是菜单) 引入 .lib 库文件告诉程序头文件的具体实现(就好比是具体的做菜过程) 至于 .dll 文件,你可以理解为它是对 lib 文件的补充,有的时候会没有 一般第三方库会提供三个文件 .h/.lib/.dll,有的时候也是两个 .h 和 .lib 在项目中,一般 .h 文 …