- 博客(61)
- 资源 (8)
- 收藏
- 关注
原创 g++命令
为了得到可预测的结果,您在指定此链接器选项时,也必须指定用于编译的同一组选项(-fpic、-fPIC 或 model 子选项)。生成与位置无关的的代码,适用于使用动态库,与“-fpic”的区别在于去除去全局偏移表的任何限制(如果机器支持的话)默认情况下,源文件的目标文件名是通过将后缀 .c、.i、.s 等替换为 .o 来生成的。默认情况下,源文件的汇编文件名是通过将后缀 .c、.i 等替换为 .s 来生成的。不要求编译或汇编的、无法识别的输入文件将被忽略。汇编代码--汇编-->二进制代码。
2024-05-02 10:39:05 451
原创 objdump命令解析
这里显示的选项的长格式和短格式都是可以的,他们是等效的。以下选项中至少一项需要给出:-a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-P,-r,-R,-s,-S,-t,-T,-V,-x。选项决定显示的具体信息。
2024-05-02 09:15:47 1132
原创 objdump 输出格式解析
符号可以是局部的(l),全局的(g),唯一的全局(u),既不是全局也不是局部(空格),或者既是全局又是局部(!符号既不是局部的也不是全局的,可能是由于各种原因,例如它用于调试,但如果它既是局部的又是全局的,也可能是出错了。接下来是与符号关联的节,如果是绝对节(即不与任何节连接),则显示为 ABS,如果是未定义但在文件中引用的节,则显示为 UND。警告符号的名称是一个如果跟随警告符号的符号被引用时要显示的消息。符号是对另一个符号的间接引用(I),在重定位期间需要处理的函数(i),或者是一个普通符号(空格)。
2024-05-02 08:24:50 502 1
原创 C++ 封装、继承和多态
多态指的是同一个函数名可以调用不同类型的函数,从而实现不同对象之间的差异性行为。静态多态是通过函数重载和运算符重载来实现的,而动态多态则是通过虚函数来实现的。多态的目的是实现代码的灵活性和可扩展性,使得程序可以更好地适应不同的应用场景。封装是指的是将数据和操作数据的方法封装在类中,使得数据和方法不能被外部直接访问,只能通过类的公共接口进行访问和修改。封装的目的是实现代码模块化和信息隐藏,提高代码的可维护性和可重用性。继承是指的是一个类(子类)通过继承另一个类(父类)的属性和方法,从而实现代码的扩展。
2023-07-08 08:37:43 1305
原创 linux C++并行算法
C++17中增加了并行计算,linux使用并行计算需要安装Inter TBB库。2、编译的时候链接到tbb库,即-ltbb。运行的时候可以看到,会用到多个CPU。
2023-05-20 16:06:44 209
原创 windows 打包c++运行库
c++程序开发完成以后需要打包,一般情况下需要带着c++运行库,打包运行库有两种方式:1、直接打包安装程序,比如vc_redist.x64.exe2、打包运行库dll微软官方支持第一种方式,对于第二种方式没有给出具体的操作流程。第一种方式一般是在程序安装完成后,安装vc_redist.x64.exe。vc_redist.x64.exe与vcredist_x64.exe应该是一样的(没有验证过),都可以在vs的安装目录下找到。下面简单介绍如何获取vc_resit.x64.exe中的dll1
2020-11-29 11:04:15 2351
原创 go使用本地模块
1、新建本地模块,在任意目录下新建目录algmod在algmod目录下执行 go mod init example.com/forest506/algmod,其中example.com/forest506/algmod是假的,不存在url,这里可以看成就是一个名称在algmod目录下新建文件alg.go,代码如下:package algimport "fmt"func Add...
2020-02-20 23:29:59 716
原创 Error: Could not find or load main class
1.使用eclipse创建一个gradle项目2.目录结构如下HelloGradle-------|------bin-| |----main-| | |--HelloGradle |3.开始直接在最后一个HelloGradle目录执行java TcpServer或者...
2019-07-28 14:44:13 1267
原创 vscode 调试electron代码
原文地址:https://electronjs.org/docs/tutorial/debugging-main-process-vscode,有问题最好查看官网文档1.在代码根目录,添加 .vscode/lanuch.json,内容如下:{ "version": "0.2.0", "configurations": [ { "name": "Debug Ma...
2019-06-30 09:59:48 1369
原创 mysql给指定数据库创建用户
1、用root用户登录数据库sudo mysql2、创建用户create user test@localhost;3、给用户授权grant all privileges on dbgo.* to test@localhost identified by '123';dbgo是事先建好的数据库4、用新建的用户登录数据库sudo mysql -u test -p dbg...
2019-06-09 09:20:12 765
原创 如何解决0xc000007b错误
1、编成过程中可能会遇到0xc000007b错误,如下图所示:2、问题重现编写一个exe控制台程序和一个dll程序,用64位程序调用32位dll,可以出现这个错误3、问题解决从2可以知道是库版本不对造成的。这类问题大多是由于dll出现问题造成的,比如dll cpu类型不匹配,或者版本不匹配。可以用dependency walker排查此类问题。用dependency w...
2019-05-19 07:59:47 2503
翻译 导出函数列表视图
“导出函数列表视图”显示“模块依赖关系树视图”中当前所选模块的导出函数列表。导出函数是模块向其他模块公开的函数。它们可以被认为是模块的接口。Dependency Walker使用导出的列表检查所选模块中无法解析的外部错误。有关更多信息,请阅读“父导入函数列表视图”部分。当Dependency Walker扫描模块的导出列表时,它会检查每个函数以查看它是否真的是转发函数。转发函数是一个...
2019-05-18 16:31:23 553
翻译 导入函数列表视图
导入函数列表视图显示模块依赖关系树视图中当前所选模块的导入函数列表。导入函数是父模块在给定模块中实际调用的函数。对于隐式和前向依赖关系,所选模块需要导出父级从其导入的每个函数。如果所选模块未导出父模块期望调用的其中一个函数,则在尝试加载模块时将发生无法解析的外部错误。请参阅导出功能列表视图以查看所选模块的导出函数。Dependency Walker在导出的函数列表中搜索每个父导入函数,以确...
2019-05-18 16:16:35 306
翻译 模块列表视图
原文地址:http://dependencywalker.com/help/html/hidr_module_list_view.htm模块列表视图显示根模块所有的依赖项。此列表是根模块加载和执行所必需的文件集。可以使用完整文件路径或仅使用文件名显示模块以节省屏幕空间。您可以使用“ Full Paths”选项控制显示的内容。您还可以通过选择“ Copy Command”将所选模块的文件名或...
2019-05-18 15:41:05 984
翻译 模块依赖树视图
网页原地址:http://dependencywalker.com/help/html/hidr_module_tree_view.htm模块依赖关系树视图显示所有模块依赖关系的分层视图。模块可以通过多种方式成为另一个模块的依赖项。Dependency Walker以您打开的根模块开始,并扫描其导入表以构建所需的依赖模块列表。然后,Dependency Walker扫描每个依赖模块的相关模...
2019-05-18 10:34:31 879
翻译 使用Dependency Walker获取模块的一般信息
Dependency Walker不仅仅是一个故障排除工具。它还提供了应用程序的模块布局和每个模块的详细信息的大量有价值的信息。Dependency Walker提供以下信息: 1、应用程序所需的所有模块的完整模块依赖关系树图。 2、从每个模块导出的所有函数的列表。这些列表包括按名称导出的函数,按序号导出的函数以及实际被其他模块调用的函数。C ++函数可以以修饰格式显示,或者可...
2019-05-18 08:33:37 557
翻译 使用Dependency Walker对模块进行故障排除
Dependency Walker递归扫描特定应用程序所需的所有相关模块。在此扫描期间,它执行以下任务: 1、检测丢失的文件。这些是作为另一个模块的依赖项所必需的文件。此问题的错误信息是“无法在指定的路径中找到动态链接库BAR.DLL ...”。 2、检测无效文件。这包括不符合Win32或Win64的文件以及损坏的文件。此问题的错误信息是“应用程序或DLL BAR.EXE不是有...
2019-05-18 08:18:54 3856 1
原创 ubuntu 18.04 sudo apt update 问题
ubuntu18.04 执行sudo apt update 时出现如下错误:E: The repository 'http://ppa.launchpad.net/fcitx-team/nightly/ubuntu bionic Release' does not have a Release file.N: Updating from such a repository can't be ...
2019-05-02 15:54:15 1753
转载 ubuntu18.04安装mysql及配置
A previous version of this tutorial was written by Hazel VirdóIntroductionMySQL is an open-source database management system, commonly installed as part of the popular LAMP (Linux, Apache, My...
2019-03-03 12:00:51 408
原创 mysql安装与卸载
安装1、sudo apt install mysql-server2、sudo apt install mysql-client卸载 sudo apt --purge remove mysql-client mysql-server mysql-commonsudo apt autoremove
2019-03-02 11:04:48 169
原创 qt 不显示svg图片
qt 界面添加图片时,png图片可以正常现实,svg图片现实不了。可以把qt 安装目录下plugins 下文件夹imageformats复制到exe同目录下
2018-11-10 08:42:31 3310
原创 qt 播放视频显示马赛克
1、根据qt提供的demo,用QMediaPlayer和QVideoWidget控件播放视频文件,视频文件用windows media player可以播放,但是自己的程序能播放avi格式视频,MP4格式会显示马赛克。2、上网查资料,下载K-Lite Codec Pack 解码器,官方下载地址:http://www.codecguide.com/,问题解决。感谢博客https://blog.c...
2018-10-30 20:22:17 923
原创 socket编程基础
发现一篇很好的文章,介绍网络编程流程、字节序、TCP和UDP区别、字节对齐、消息封装、阻塞和非阻塞等网络编程中需要考虑的问题。pdf文件名称是Introduction to Sockets Programming in C using TCP/IP。也可以从https://download.csdn.net/download/simpleforest/10748824下载 ...
2018-10-28 11:05:29 246
原创 cmake 编译找不到 Qt5WebKitConfig.cmake
用cmake编译时出现如下错误提示:CMake Error at CMakeLists.txt:313 (FIND_PACKAGE): By not providing "FindQt5WebKit.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file prov...
2018-07-07 21:03:39 6465
原创 链表逆转(不带头结点)
// Test.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>typedef struct _Node { int dat; _Node *next; _Node(int d) { dat = d; next = nullptr; }...
2018-04-22 09:42:56 410
原创 QWebEngineView无法打开二级页面
使用QWebEngineView显示网页,会出现点击二级页面无法跳转的问题,解决方案如下:1、自定义类,继承QWebEngineView,重写CreateWindow函数;比如:QWebEngineView * MyWebEngineView::createWindow(QWebEnginePage::WebWindowType type) { Q_UNUSED(type) ret...
2018-04-05 10:36:01 2983 1
原创 QtCreator 运行时库错误
Qt5.10.0安装完成后,启动QtCreator时出现错误:无法定位程序输入点_o_initialize_narrow_environment 于动态链接库api-ms-win-crt-private-|1-1-0.dll上。原因:运行库版本不一致解决办法:去安装目录找到vcredist_msvc2015_x86.exe,重新安装...
2018-04-03 22:46:52 1298
原创 QWebEngineView
最近在学Qt+html5+js编程,但是发现自己的安装目录没有相应的文件,最后发现是安装的时候没有选上。安装的时候应该选中QtWebEngine,能安装的模块尽量都选上吧。...
2018-04-03 22:21:16 818
原创 No CMAKE_C_COMPILER could be found
1、问题:cmake gui做Configure的时候,报错 No CMAKE_C_COMPILER could be found;而且以后无法再次Configure2、原因:vs 版本配置不对;电脑上装的是vs2015,配置中选择了visual studio 15 2017; vs2015应该是visual studio 14 2015, visual studio 15 2017是vs2017...
2018-04-01 09:33:50 1943
原创 TCP send笔记
1、阻塞模式下,发送缓冲区满,send会一直等待,直到数据发送出去;2、非阻塞模式下,发送缓冲器满,send会返回错误信息,应用程序需要自行处理。
2018-03-24 10:01:41 254
原创 快速排序算法
#include <iostream>#include <ctime>int Partition(int a[], int low, int high) { int key = a[low]; int l = low, h = high; while(l < h) { while(h > l && a[h] >...
2018-03-15 08:22:48 153
原创 直接插入排序
void StraightInsertSort(int[] a, int n) { for(int i = 1; i < n; ++i) { int key = a[i], j = i-1; while(j >= 0 && a[j] > key) { a[j+1] = a[j]; j--; ...
2018-03-14 16:15:46 136
转载 windows消息机制要点
Windows消息机制要点1. 窗口过程 每个窗口会有一个称为窗口过程的回调函数(WndProc),它带有四个参数,分别为:窗口句柄(Window Handle),消息ID(Message ID),和两个消息参数(wParam, lParam), 当窗口收到消息时系统就会调用此窗口过程来处理消息。(所以叫回调函数) 2 消息类型 1) 系统定义消息(System-D...
2018-03-04 10:00:29 277
转载 程序员成长历程的四个阶段
本文转自http://www.jianshu.com/p/6f25611c5032作者 冷_69862017.08.25 15:28* 字数 838 阅读 309评论 0喜欢 0阶段一:不知道自己不知道(Unconscious incompetence)大学期间,我和老师做过一些小项目,自认为自己很牛,当时还去过一些公司面试做兼职,但是就是不
2017-08-25 20:41:06 486
转载 程序员编程生涯中常会犯的7个错误,你中了吗?
作为软件开发人员生活和职业指导,我需要和很多程序员交流,帮助他们提升职业生涯,加速成长。时间久了,我发现很多程序员总是犯着相同的错误,前仆后继,却毫不自知。下面就是程序员在他们的软件开发生涯中最常犯的7个错误。▼没有明确的目标心中没有终点目标,那就只会随波逐流。如果你想在软件
2017-08-24 22:26:27 423
原创 vim+Vundle+vim-autoformat+astyle格式化代码
Vundle是vim插件管理工具,用来管理vim插件,vim-autoformat是代码格式化插件1.安装Vundle(参考点击打开链接)$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim2.在.vimrc文件中添加如下内容set nocompatible
2017-08-20 16:00:59 2777
mysql 8.0 reference manual
2018-12-24
Beej's Guide to Network Programming Using Internet Sockets
2018-10-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人