头文件与源文件
头文件与源文件相关…
先看一个测试。github地址:https://github.com/shona3n/forward/tree/master/HeaderStaticTest
做个测试a.h文件中有static变量,b.h和c.h皆include “a.h”文件,b.h中和c.h中访问到的变量是否是同一变量,答案不是同一变量。
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586# a.h#ifndef __A_H__#define __A_H__#include <stdio.h>static int a = 1;#endif# a.c#include "a.h"static int a = 1;void setA(int t) { a = t;} ...
常用DNS介绍
常用的DNS有…
介绍电脑上网,比如你在浏览器中输入网址:baidu.com,想要去访问百度的网页,但是这时候电脑却不知道该去哪里,这时候就需要引路人,而DNS就是电脑上网的‘引路人’。DNS服务厂商的服务器里面存了数亿万的IP以及域名的对应关系。基本就是你问DNSbaidu.com的IP是啥,然后它告诉你。可以简单的这样理解。
知道DNS是什么之后,我们就需要选择最快的DNS了。电脑选择DNS的时候,也需要选择一个最优的,这样在你输入网址到传回来你想要的网页内容才能够在最短的时间内完成。
下面简单介绍几个DNS节点:
自动DNS自动DNS是因运营商而异,因地区而异的,由运营商或者电脑自动设置的。这是IP协议默认画面是长这个样子的。
180.76.76.76百度DNS,作为全世界最大的中文搜索引擎服务提供商,百度的DNS速度还是不错的。
223.6.6.6 / 223.5.5.5阿里云DNS,阿里云服务器现在大有统一全国服务器的趋势,很多网站或者APP的服务器倒放到了阿里云上,其所提供的DNS解析服务速度还是可以的。
119.29.29.29腾讯DNS,只要你的微信不卡,那么就说明腾 ...
CPlusPlus问题记录
Issue1 std::shared_ptr问题cmake build错误
Error 1error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
如图1
Solution
添加#include <memory>;
CMakeLists.txt中添加:set(CMAKE_CXX_STANDARD 11);
Qt用法汇总
<<<<<<< HEAD介绍…
下载地址:https://download.qt.io/archive/qt/
QT三大核心机制信号槽,原对象系统以及事件模型。重载函数connect(this, QOverload<>::of(&classname::signal), this, QOverload<>::of(&classname::slot))
信号-槽: QueuedConntection,DirectionConnection, autoConnection, uniqueConnection, blockingQueue
元对象系统: QObject, Q_OBJECT, moc元对象编译器。事件模型: 事件的创建:鼠标事件,键盘事件,窗口调整事件,模拟事件; 事件的交付:QObject::event()交付事件; 事件循环模型:QCoreApplication::exec()启动,exit()结束; QEventLoop
信号-槽signal没有publ ...
googletest安装与使用
googletest编译与使用…
编译github下载源码:https://github.com/google/googletest.git
下载最新的版本,解压,进入目录:
12345678910mkdir buildcd build# cmake -Dgtest_build_tests=ON -Dgmock_build_tests=ON ${GTEST_REPO_DIR} ..cmake -Dgtest_build_tests=on -DCMAKE_INSTALL_PREFIX=. ..makemake install# 在build文件下有include/和lib/,添加到任意工程使用。# run test. All tests should pass.make test
编译时添加头文件./googletest/include, 或者./googlemock/include。以及库文件./build/lib/libgtest.a或者其他对应的库文件,根据需要拷贝添加。
使用例子:
123456789101112#include "gtest/ ...
arm交叉编译openssl和curl
https在linux下的使用,以及arm平台上的使用…
ubuntu下的调用安装sudo apt-get install libcurl4-openssl-dev
默认安装目录:/usr/include/curl/。
测试:
1curl https://www.baidu.com
例子123456789101112131415161718192021222324252627282930// https.cpp#include <stdio.h>#include <curl/curl.h>int main(void){ CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "https://www.baidu.com/"); /* Perform the request, res ...
静态库与动态库
静态库与动态库相关知识…
库文件分为静态库和动态库(共享库)。
静态库Linux为.a,window上为.lib。
静态库是中间文件的集合,在链接阶段直接将库中的内容合并到最终的可执行文件中,链接完成后,生成的可执行文件的执行不再依赖静态库。
静态库生成的命令
12gcc -c *.c # 先将.c文件生成对应的.o文件ar crv libxxxx.a *.o # 其中xxxx是生成的库名,前面的`lib`和后面的`.a`必须有
静态库的使用
方法一:gcc -o run main.c -L(库路径) -l(库名),例如: 1gcc -o run main.c -L/home/stu/lib -lList
方法二:gcc -o run main.c 路径/libxxxx.a,例如: 1gcc -o run main.c /home/stu/lib/libList.a
动态库Linux上为.so,Window上为.dll。
动态库是不可单独执行的可执行文件,链接阶段只在可执行文件中设置使用的的库,运行时由操作系统加载到内存上执行,因此生成的 ...
Markdown写作之旅
Markdown使用记录…
编辑IDEMarkdown使用的编辑器推荐有Visual studio code(以下简称vscode)和Typora,二选一即可。
Vscode编辑器集成了markdown语法,有不错的预览功能。能打开大部分的文件,功能强大,编程神器。Typora编辑器能将markdown文件导出为PDF。
两者都很推荐。笔者同时使用两个,编辑的时使用vscode较多,导出PDF则使用typora。如果出了markdown文件编辑还有其他文本编辑的需求,推荐vscode。
语法
添加链接[显示文字](地址链接);
上引号一行引用:`引用文字`;
代码段引用: 12```代码
123- 插入图片: `![未找到提示语](图片相对路径或绝对路径)`,如:`![myimage](a.png)`;- 加粗字体:
这是加粗的文字 123- 斜体:
这是斜体文字 12- 自定义字体大小:
我是变大的字 12- 字体变大变小标签:
字体变小 字体变大 12- 换行:
空格+空格+回车