自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 将一台电脑的vs代码移植到另一台电脑上无法运行

报错信息vs直接提示有1个错误,但没有提示错误信息。解决方案找到项目中的.vcxproj文件,用notepad或其它文本编辑器打开,删除文件中属性配置信息(因为是另一台电脑的,所以无法找到该属性表库的路径信息,所以会报错),然后删除。用VS重新打开项目,配置新的属性表。...

2020-12-29 10:13:23 4228 3

原创 opengl设置uniform的注意事项

针对在片段着色器或顶点着色器中设置uniform变量后,找不到的问题。

2020-11-19 21:47:08 983

转载 ubuntu下查看电脑系统信息

1. 查看ubuntu系统是32位的还是64位的getconf LONG_BIT2. 查看系统信息(包括系统版本)lsb_release -a

2020-08-06 09:40:19 1039

原创 docker常用基本指令

通过一个原始镜像文件可以创建多个容器,每个容器做的修改都是独立的,要移植的话, 需要将容器做成一个新镜像,然后将这个新镜像打包成tar快照文件。

2020-08-05 16:17:37 321

原创 c++ condition_variable并行编程 (例:生产消费者模式)

1 condition_variable参考:https://www.cnblogs.com/GuoXinxin/p/11675053.html当 std::condition_variable对象的某个wait 函数被调用的时候,它使用 std::unique_lock(通过 std::mutex) 来锁住当前线程。当前线程会一直被堵塞。直到另外一个线程在同样的 std::condition_variable 对象上调用了 notification 函数来唤醒当前线程。1.1 condition_

2020-08-05 12:58:17 155

转载 qt 打不开工程(无法配置工程)

https://blog.csdn.net/a379039233/article/details/49684043原因:没有选择qmake依次 “Tools” -> “Options…” -> “Build & Run” -> “Kits”

2020-07-27 21:15:29 9090 1

原创 tx2 jetpack4.2 安装tensorflow-gpu

TX2 (JetPack4.2)安装TensorFlow-gpu有个问题:4.2刷机安装的cudnn是7.3版本的,而tensorflow1.14及其以上需要的是7.4以上的cudnn安装版本:JetPack4.2更换cudnn版本:https://blog.csdn.net/qq_42608626/article/details/1069270461.安装javasudo apt-get install openjdk-8-jdkjava -version配置环境which javac /

2020-06-24 09:13:59 955 2

原创 tx2更换cudnn版本

由于tx2刷的jetpack4.2版本,cuda10.0+cudnn7.3.1,不符合tensorflow-gpu1.14的版本需求,故更换7.6版本的cudnn.

2020-06-23 16:51:08 528

原创 对称二叉树

给定一个二叉树,检查它是否是镜像对称的。题解:(沿用相同树的思想,将二叉树拆分成两个树来比较)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solu

2020-06-01 18:13:46 126

原创 相同的树

给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。题解一:(递归)/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} *

2020-06-01 15:43:46 107

原创 拥有最多糖果的孩子

给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。示例:输入:candies = [2,3,5,1,3], extraCandies = 3输出:[true,true,true,false,true] 解释:孩子 1 有 2 个糖果,如果他得到所有额

2020-06-01 09:28:39 145

转载 when making a shared object recompile with -fPIC

遇到的问题error: kernel_cuda.o: relocation R_AARCH64_ADR_PREL_PG_HI21 against symbol `_ZSt4cout@@GLIBCXX_3.4’ which may bind externally can not be used when making a shared object; recompile with -fPIC解决方法参考:https://blog.csdn.net/qq_22764813/article/details/

2020-05-29 10:34:32 1890

原创 删除排序链表中的重复元素

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例1:输入: 1->1->2输出: 1->2示例2:输入:[]输出:[]题解一:借助vector的erase方法,配合unique()删除排序重复元素class Solution {public: ListNode* deleteDuplicates(ListNode* head) // 借助vector的erase方法,配合unique()删除排序重复元素 { if

2020-05-25 15:47:09 162

原创 加一

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例2:输入: [9,9,9]输出: [1,0,0,0]解释: 输入数组表示数字 1000。题解:class Solution {public: vector<int> plusOne(vector<i

2020-05-22 14:27:36 124

转载 tx2 开启并回环测试can

英伟达的TX2有两路CAN,默认情况下是没有启动的,通过ifconfig命令可以查看CAN是否启动通过下面的设置可以启动CAN模块步骤一:# 注意由于版本不同,modules下模块可能不是4.4.38cd /lib/modules/4.4.38-tegra/kernel/net/cansudo insmod can.kosudo insmod can-raw.kosudo insmod can-gw.kosudo insmod can-bcm.ko步骤二:# 同上,可能不是4.4.38

2020-05-21 10:05:27 591

原创 qt error: collect2: error: ld returned 1 exit status

linux下QT编译出现collect2:ld returned 1 exit status错误的原因之一是未安装mesasudo apt install libgl1-mesa-dev重启qt自己遇到的原因是:链接库问题在.pro文件里:# opencvINCLUDEPATH += /usr/local/include \ /usr/local/include/opencv \ /usr/local/include/opencv2

2020-05-21 09:54:59 6462 1

转载 ubuntu 18.04 gcc版本管理与降级

Ubuntu下多个gcc版本设置优先级1.首先查看当前系统装了几个GCC版本:ls /usr/bin/gcc*ls /usr/bin/g++*2.给GCC各版本设置优先级,最后设置的数字越小,优先级越高,下面设置是GCC4.8为最高,即默认是GCC48.sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 70sudo update-alternatives --install /usr/bin/gcc gcc /

2020-05-21 09:48:06 2347 2

原创 搜索插入位置

给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。假设数组中无重复元素。示例1:输入: [1,3,5,6], 5输出: 2示例2:输入: [1,3,5,6], 2输出: 1示例3:输入: [1,3,5,6], 7输出: 4题解:class Solution {public: int searchInsert(vector<int>& nums, int target) {

2020-05-19 15:56:12 130

原创 实现 strStr()

实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例:输入: haystack = "hello", needle = "lo"输出: 3说明:当 needle 是空字符串时我们应当返回 0 。题解:class Solution {public: int strStr(string haystack, string ne

2020-05-19 14:49:32 155

原创 合并两个有序链表

借助一个中间list,用list的sort()方法进行排序。

2020-05-18 13:32:47 100

原创 有效的括号

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足: 1.左括号必须用相同类型的右括号闭合。 2.左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例1:输入:"()[]{}"输出:true示例2:输入:"{()}"输出:true示例3:输入:"({)}"输出:false示例4:输入:"(("输出:false题解:class Solution {public: b

2020-05-18 11:32:56 120

原创 罗马数字转整数

示例:输入: "MCMXCIV"输出: 1994解释: M = 1000, CM = 900, XC = 90, IV = 4.题解:class Solution {public: int romanToInt(string s) { int num = 0; for (int i = 0; i < s.size(); ) { string tmp_s = s.substr(i, 1); .

2020-05-15 14:29:29 225

原创 回文数

判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例1:输入:12输出:true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。注意:不将整数转换成字符串题解:class Solution {public: bool isPalindrome(int x) { if (x < 0) { r

2020-05-15 13:21:31 104

原创 整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例1:输入: 123输出: 321示例2:输入:-123输出:-321注意: 32 位的有符号整数,则其数值范围为 [−2^31, 2^31 − 1]。 请根据这个假设,如果反转后整数溢出那么就返回 0。题解:class Solution {public: int reverse(int x) { stack<string> ss; str

2020-05-15 12:52:13 82

原创 配置mysql

1 环境配置这是一篇ubuntu16.04卸载mysql5.7并安装mysql8.0.19的记录ubuntu16.04默认安装的是mysql5.7的版本1.1 卸载mysqlsudo apt-get autoremove --purge mysql-server sudo apt-get remove mysql-commondpkg -l |grep ^rc|awk '{print ...

2020-01-17 10:01:35 238

原创 record lcd

修改.pro文件由于/usr/lib/x86_64-linux-gnu或/usr/lib/aarch64-linux-gnu中有ffmpeg版本,故要将库路径写在自己安装ffmpeg库路径之后。如:##FFMPEGINCLUDEPATH += /home/frank/Documents/zhangyi/ffmpeg4/includeLIBS += -L/home/frank/Documen...

2020-01-02 10:06:09 99 1

原创 Qt5.12.2/5.12.2/gcc_64/lib/libQt5Test.so.5:-1: error: undefined reference to `qt_version_tag@Qt_5.12

适用场景我的qt5.12.2是下载.run安装包安装的,通过以下命令查看系统是否有多个qt版本:find /usr -name libQt5*如果发现有多个qt版本,则与我的情况类似。解决方案sudo apt-get remove libQt5*执行卸载之后再次查看:find /usr -name libQt5*如果还有多的版本,则直接cd到目录,rm:#例如cd /us...

2019-12-31 08:39:25 3064 1

原创 解决libQt5XcbQpa.so.5: undefined symbol: FT_Property_Set

遇到的问题symbol lookup error: /home/frank/Qt5.12.2/5.12.2/gcc_64/lib/libQt5XcbQpa.so.5: undefined symbol: FT_Property_Set解决方法分析我遇到的这种情况是因为有两个版本的freeetype导致的。输入:find /usr -name libfreetype*如果出现:/...

2019-12-30 17:57:48 9184 2

转载 OpenGL(十二) 基础光照

主要介绍了冯氏光照模型的三个主要结构:环境光照,漫反射光照和镜面光照。本文主要介绍的是在世界坐标系下进行光照计算,实际上大多数人都趋于在观察空间进行光照计算,本文末尾有在观察空间进行光照计算的练习。即使对于着色器而言,逆矩阵也是一个开销较大的运算,可以选择在CPU计算出法线矩阵之后再通过uniform把值传递给着色器。

2019-09-25 16:55:19 633

转载 OpenGL(十一) 颜色

现实生活中看到的某一物体的颜色实际上是它反射的颜色,即不能被物体吸收的颜色。本文为表现出光照反射效果,创造一个表示光源的物体(为了防止他改变,特地为光源创建一个独立的顶点着色器和片段着色器),这个光源纯粹是为了表示光照效果而已,实际作用不大,没有也可。实现光照反射效果,实际上就是设置两种颜色,一种是物体颜色,一种是光源颜色,然后将两种颜色相乘混合,显示出意想不到的颜色,作为被照射物体的最终颜色。

2019-09-24 10:42:20 502

转载 OpenGL(十) 入门复习

词汇表OpenGL: 一个定义了函数布局和输出的图形API的正式规范。GLAD: 一个拓展加载库,用来为我们加载并设定所有OpenGL函数指针,从而让我们能够使用所有(现代)OpenGL函数。包含两个头文件目录,和一个glad.c文件。将两个头文件目录(glad和KHR)复制到你的Include文件夹中(或者增加一个额外的项目指向这些目录),并添加glad.c文件到你的工程中。视口(Vie...

2019-09-11 16:38:22 152

转载 OpenGL(九) 摄像机

摄像机前面的教程中我们讨论了观察矩阵以及如何使用观察矩阵移动场景(我们向后移动了一点)。OpenGL本身没有摄像机(Camera)的概念,但我们可以通过把场景中的所有物体往相反方向移动的方式来模拟出摄像机,产生一种我们在移动的感觉,而不是场景在移动。摄像机/观察空间当我们讨论摄像机/观察空间(Camera/View Space)的时候,是在讨论以摄像机的视角作为场景原点时场景中所有的顶点坐标...

2019-09-11 15:48:49 1066

转载 OpenGL(八) 坐标系统

在上一个教程中,我们学习了如何有效地利用矩阵的变换来对所有顶点进行变换。OpenGL希望在每次顶点着色器运行后,我们可见的所有顶点都为标准化设备坐标(Normalized Device Coordinate, NDC)。也就是说,每个顶点的x,y,z坐标都应该在-1.0到1.0之间,超出这个坐标范围的顶点都将不可见。我们通常会自己设定一个坐标的范围,之后再在顶点着色器中将这些坐标变换为标准化设备坐...

2019-08-26 15:30:18 1853

转载 OpenGL(七) 变换

尽管我们现在已经知道了如何创建一个物体、着色、加入纹理,给它们一些细节的表现,但因为它们都还是静态的物体,仍是不够有趣。我们可以尝试着在每一帧改变物体的顶点并且重配置缓冲区从而使它们移动,但这太繁琐了,而且会消耗很多的处理时间。我们现在有一个更好的解决方案,使用(多个)矩阵(Matrix)对象可以更好的变换(Transform)一个物体。当然,这并不是说我们会去讨论武术和数字虚拟世界(译注:Mat...

2019-08-23 21:42:45 1324

转载 OpenGL(六) 纹理

我们已经了解到,我们可以为每个顶点添加颜色来增加图形的细节,从而创建出有趣的图像。但是,如果想让图形看起来更真实,我们就必须有足够多的顶点,从而指定足够多的颜色。这将会产生很多额外开销,因为每个模型都会需求更多的顶点,每个顶点又需求一个颜色属性。艺术家和程序员更喜欢使用纹理(Texture)。纹理是一个2D图片(甚至也有1D和3D的纹理),它可以用来添加物体的细节;你可以想象纹理是一张绘有砖块的...

2019-08-22 21:56:25 463

转载 OpenGL(五) 着色器

着色器着色器(Shader)是运行在GPU上的小程序。这些小程序为图形渲染管线的某个特定部分而运行。从基本意义上来说,着色器只是一种把输入转化为输出的程序。着色器也是一种非常独立的程序,因为它们之间不能相互通信;它们之间唯一的沟通只有通过输入和输出。GLSL着色器是使用一种叫GLSL的类C语言写成的。GLSL是为图形计算量身定制的,它包含一些针对向量和矩阵操作的有用特性。着色器的开头总是...

2019-08-20 14:57:44 702

原创 读文件流转换为string,再转换为char*(异常处理)

#include <string>#include <fstream>#include <sstream>#include <iostream>int main(){ const char* vertexPath = " "; // 加载文件名 std::string vertexCode; std::ifstr...

2019-08-20 10:00:04 547

原创 nano ubuntu18.04 解决#include_next stdlib.h not found

nano ubuntu18.04 解决#include_next<stdlib.h> not found

2019-08-16 19:39:44 3829

转载 ubuntu配置opengl环境glfw+glad+glm+stb_image.h+Assimp

GLFW3.3 + GLAD

2019-08-16 19:16:36 4660 1

转载 OpenGL(四) 三角形

在学习此节之前,建议将这三个单词先记下来:顶点数组对象:Vertex Array Object,VAO顶点缓冲对象:Vertex Buffer Object,VBO索引缓冲对象:Element Buffer Object,EBO或Index Buffer Object,IBO当指代这三个东西的时候,可能使用的是全称,也可能用的是英文缩写,翻译的时候和原文保持的一致。由于没有英文那样的...

2019-08-16 14:57:16 711

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除