博客转载方法:右键->审查->article_content->copy
live555官方类图:http://www.live555.com/liveMedia/doxygen/html/inherits.html
QT Creator 工程转VS工程:
命令行运行:qmake -tp vc XXX.pro
会生成文件XXX.vcxproj
ps:如果找不到qmake需要设置环境变量,该文件在QT安装目录的bin文件夹下面
VS开发QT 应用程序时出现std::cout<< 无法输出的情况,并且控制台也没有弹出
解决方法: 工程->属性->配置属性->链接器->系统->子系统中将 窗口(/SUBSYSTEM:WINDOW) 改为 控制台(/SUBSYSTEM:CONSOLE)
VS工程配置宏:
$(SolutionDir)$(Platform)\$(Configuration)
VS项目管理文件夹目录:
**.sln:
P1
*.cpp
*.h
P1.vcxproj
P1.vcxproj.filters
P1.vcxproj.user
P2
*.cpp
*.h
P2.vcxproj
P2.vcxproj.filters
P2.vcxproj.user
链接live555库的代码,需要链接库Ws2_32.lib
live555rtspclient获取到的码流,是裸码流,需要加0x00,0x00,0x00,0x01,的NAL头才能解码
git clone 失败,错误提示:
$ git clone https://github.com/boostorg/boost.git
Cloning into 'boost'...
remote: Counting objects: 183543, done.
remote: Compressing objects: 100% (69361/69361), done.
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
解决办法:
1、clone 目录,生成本地.git文件夹,然后终止下载
2、修改./git/config文件,[core]下添加compression = -1:
[core]
compression = -1
GIT忽略文件格式:
编辑文件:.git\info\exclude
# 忽略掉所有文件名是 foo.txt的文件.
foo.txt
# 忽略所有生成的 html文件,
*.html
# foo.html是手工维护的,所以例外.
!foo.html
# 忽略所有.o和 .a文件.
*.[oa]
# 忽略*.o和*.a文件
*.[oa]
# 忽略*.b和*.B文件,my.b除外
*.[bB]
!my.b
# 忽略dbg文件和dbg目录
dbg
# 只忽略dbg目录,不忽略dbg文件
dbg/
# 只忽略dbg文件,不忽略dbg目录
dbg
!dbg/
# 只忽略当前目录下的dbg文件和目录,子目录的dbg不在忽略范围内
/dbg
centos虚拟机启动时候不自动连接网络处理方法:
vim /etc/sysconfig/network-scripts/ifcfg-ens33(ifcfg-ens33这个文件因不同虚拟机而不同)
ONBOOT=no 改为 yes
service network restart
PS:
ONBOOT=no 意思是:系统在启动时不激活网卡
ONBOOT=yes 意思是:系统在启动时激活网卡
WireShark:
过滤IP:
ip.addr==192.168.101.8
ip.dst==192.168.101.8;
Ip.src==192.168.101.8
过滤端口:
tcp.port==80
tcp.dstport==80
tcp.srcport==80
IP+端口:
ip.addr==192.168.101.8 and tcp.port==80
HTTP包过滤:
http.request.method=="GET",
http.request.method=="POST";
ip.src==192.168.101.8 and http
Scons
参考文章:https://www.ibm.com/developerworks/cn/linux/l-cn-scons/index.html
源码目录下创建SConstruct 文件,是socns配置文件
Program(‘helloscons.c’)
Program(‘myscons, ‘helloscons.c’)
Program(‘helloscons2’, [‘helloscons2.c’, ‘file1.c’, ‘file2.c’],
LIBS = ‘m’,
LIBPATH = [’/usr/lib’, ‘/usr/local/lib’],
CCFLAGS = ‘-DHELLOSCONS’)
Program(‘helloscons2’, Glob(’*.c’)
配置文件中 LIBS,LIBAPTH 和 CCFLAGS 是 SCons 内置的关键字,它们的作用如下:
LIBS: 显示的指明要在链接过程中使用的库,如果有多个库,应该把它们放在一个列表里面。这个例子里,我们使用一个称为 m 的库。
LIBPATH: 链接库的搜索路径,多个搜索路径放在一个列表中。这个例子里,库的搜索路径是 /usr/lib 和 /usr/local/lib。
CCFLAGS: 编译选项,可以指定需要的任意编译选项,如果有多个选项,应该放在一个列表中。这个例子里,编译选项是通过 -D 这个 gcc 的选项定义了一个宏 HELLOSCONS。
我一直在尝试让scons将exe,obj,lib和dll文件输出到特定的构建目录。
我的文件结构如下所示:
/projectdir
/build
/bin
/obj
/source
/subdirs
/..
SConstruct
SConstruct文件如下所示:
env.VariantDir('build', 'source', duplicate = 0)
env.Program('Hierarchy', source = ['source/sconstest.cpp', 'source/utils/IntUtil.cpp'])
合并静态库的方法:
Windows:
VS项目-》属性-》配置属性-》库管理器-》常规-》附加依赖项、附加库目录 添加需要合并的静态库
Linux:
ar x /usr/local/lib/A.a
ar x /usr/local/lib/B.a
ar x /usr/local/lib/C.a
ar cru libABC.a *.o
ranlib libABC.a
winsock2.h与windows.h包含顺序
#include <winsock2.h> //在前
#include <windows.h> //在后
否则会有编译错误:
error C2011: 'sockaddr' : 'struct' type redefinition
VS UTF-8 no BOM文件问题
解决办法:打开 https://marketplace.visualstudio.com/ 搜索 utf-8 如下:(之后保存的文件就都是UTF-8 no BOM的了)
vmware workstation15.5注册码:
永久激活密钥
UG5J2-0ME12-M89WY-NPWXX-WQH88
CentOS上:/lib/ld-linux.so.2: bad ELF interpreter问题处理:
#因为32位程序安装到了64位机器上了
yum install glibc.i686
64位系统与32位系统编程区别:
64位系统指针8字节,32位系统指针4字节,不能用int类型转,要用long