C/C++
文章平均质量分 93
朝闻道-夕死可矣
朝闻道,夕死可矣!
展开
-
Linux的so文件到底是干嘛的?浅析Linux的动态链接库
HelloWorld背后的故事:在Linux上编译C语言程序分析了Hello World是如何编译的,即使一个非常简单的程序,也需要依赖C标准库和系统库,链接其实就是把其他第三方库和自己源代码生成的二进制目标文件融合在一起的过程。经过链接之后,那些第三方库中定义的函数就能被调用执行了。早期的一些操作系统一般使用静态链接的方式,现在基本上都在使用动态链接的方式。静态链接和动态链接虽然静态链接和动态链接都能生成可执行文件,但两者的代价差异很大。下面这张图可以很形象地演示了动态链接和静态链接的区别:.转载 2021-02-22 17:40:46 · 1368 阅读 · 0 评论 -
HelloWorld背后的故事:在Linux上编译C语言程序
C语言的经典程序“Hello World”并不难写,很多朋友都可以闭着眼将它写出来。那么编译一个“Hello World”到底经历了怎样的过程呢?从源代码到可执行文件我们将这个文件命名为hello.c:#include <stdio.h>int main() { printf("Hello World\n"); return 0;}程序的第一行引用了stdio.h,stdio.h里有一些C标准库预定义好的方法,比如printf()方法,...转载 2021-02-22 17:39:15 · 285 阅读 · 1 评论 -
windows下编译live555
然后开始下载编译,其中包含,Windows、Linux和交叉编译三种形式。首先来讲Windows下编译参看:Live555研究之一 源代码编译一、下载源码下载:Index of /liveMedia/public 参看:LIVE555 Streaming Media 选择下载 live555-latest.tar.gz二、文件介绍我的开发环境为 win ...转载 2018-07-17 18:44:04 · 968 阅读 · 0 评论 -
Unix 环境高级编程第三版 环境配置
1.下载源码压缩包 src.3e.tar.gz,并解压 连接http://apuebook.com/code3e.htmltar -zxvf src.3e.tar.gz2.安装 libbsd-devel方法一:yum install libbsd*,其实只需安装libbsd-devel即可方法二:rpm包安装wget http://elrepo.reloumirrors.net/te...原创 2018-07-23 16:25:58 · 346 阅读 · 0 评论 -
path_alloc未定义
在编译unix环境高级编程第三版的有些程序时候,提示问题,起始path_alloc在第二章2.5.5节中已经定义了以下是一个测试用例#include "apue.h"#include "apue.h"#include <errno.h>#include <limits.h>#ifdef PATH_MAXstatic long pathmax = P...原创 2018-07-23 16:31:22 · 390 阅读 · 0 评论 -
Windows+VS2013环境下简单调试MySQL源码
我的系统环境室win7 sp1 64bit,vs版本是2013 community在安装的时候就确保编译文件没问题,以下是简单的调试步骤:将mysqld工程的Debug的:属性->调试->命令参数,设为--console,如下:运行实例: vs的output窗口 进入客户端访问: 说明:默认的data目录在sql下C:\MySQLSC\bld...原创 2018-07-25 14:42:00 · 3220 阅读 · 0 评论 -
C/C++学习资源(转)
工具类:开发工具:VIM 骨灰级玩家专属 emacs 骨灰级玩家专属 sublimetext 很好用的编辑器 code::blocks 入门级推荐 codelite 入门级首选 eclipse+CDT 如果你经常用eclipse就直接装个cdt的插件吧 netbeans 习惯netbeans的首选 anjuta gtk首选 KDeveloper 曾经的Linux下经典...转载 2018-08-01 13:57:48 · 519 阅读 · 0 评论 -
C学习示例
本文来自:http://www.cis.temple.edu/~ingargio/cis71/code/Adding two integers/* add2.c -- Add two numbers and print them out together with their sum AUTHOR: DATE: */...转载 2018-08-01 15:47:02 · 259 阅读 · 0 评论 -
指针数组和数组指针的简单理解
图解指针数组,重点在数组数组指针,重点在指针例子:include <iostream>using namespace std;int main(){int c[2][4]={1,2,3,4, 5,6,7,8};int *a[4]; //指针数组int (*b)[4]; //数组指针b=c;//将数组c中元素赋给...原创 2019-06-04 16:48:29 · 8260 阅读 · 0 评论 -
/usr/bin/ld: /tmp/ccywVCvu.o: undefined reference to symbol 'sqrt@@GLIBC_2.2.5'
If your code includes mathematical functions (like exp, cos, etc.), you need to link to the mathematics library libm.so. This is done, just like for serial compiling, by adding -lm to the end of y...原创 2018-06-20 17:06:11 · 3646 阅读 · 0 评论 -
GDB详解
1 简介2 生成调试信息3 启动GDB 的方法4 程序运行上下文 4.1 程序运行参数 4.2 工作目录 4.3 程序的输入输出5 设置断点 5.1 简单断点 5.2 多文件设置断点 5.3 查询所有断点6 观察点7 条件断点8 维护停止点9 为停止点设定运行命令10 调试代码11 查看运行时数据12 程序变量13 自动显示14 历史记录15 改变程序的执行 ...转载 2018-05-29 14:04:09 · 802 阅读 · 0 评论 -
linux查看磁盘大小
1,python#!/usr/bin/pythonimport osimport statvfsvfs=os.statvfs("/home")#print vfs#print dir(os.statvfs)#print dir(statvfs)#availsizeavl_size=vfs[statvfs.F_BAVAIL]*vfs[statvfs.F_BSIZE]/(1024原创 2016-01-04 15:18:42 · 782 阅读 · 0 评论 -
Windows系统中Eclipse C/C++环境搭建
1,JDK安装配置,尽量1.6以上版本2,安装MinGw,说白了就是Windows平台下的C编译器 MinGW,是Minimalist GNUfor Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时(C Runtime)库原创 2017-01-11 15:15:57 · 1506 阅读 · 0 评论 -
linux环境下编译C++ 程序
单个源文件生成可执行程序下面是一个保存在文件 helloworld.cpp 中一个简单的 C++ 程序的代码: 单个源文件生成可执行程序/* helloworld.cpp */#include int main(int argc,char *argv[]){ std::cout "hello, world" std::endl; return(0);}程转载 2017-09-05 10:41:38 · 234 阅读 · 0 评论 -
new与malloc的10点区别
阅读目录前言new与malloc的10点区别1. 申请的内存所在位置2.返回类型安全性3.内存分配失败时的返回值4.是否需要指定内存大小5.是否调用构造函数/析构函数6.对数组的处理7.new与malloc是否可以相互调用8.是否可以被重载9. 能够直观地重新分配内存10. 客户处理内存分配不足总结 正文回到顶部前言几个星期前去面试C++研发的实习岗位,转载 2017-09-05 11:05:02 · 212 阅读 · 0 评论 -
Perf -- Linux下的系统性能调优工具
Perf 简介Perf 是用来进行软件性能分析的工具。通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性能问题 (per thread),也可以用来分析内核的性能问题,当然也可以同时分析应用代码和内核,从而全面理解应用程序中的性能瓶颈。最初的时候,它叫做 Performance counter,在 2.6.31 中转载 2017-09-11 13:43:47 · 1191 阅读 · 0 评论 -
算法排序
目录1,插入排序1.1 直接插入排序1.2 折半插入排序1.3,希尔插入排序2,选择排序2.1 简单选择排序2.2 堆排序3,交换排序3.1 冒泡排序3.2 快速排序4 归并排序5 基数排序算法比较问题:给定一个整数序列,按照从小到大的顺序(确切的说是非递减顺序)排序输入:一个整数序列输出:排过序的整数序列1,插入排序1.1 直...原创 2017-09-05 10:21:07 · 641 阅读 · 0 评论 -
make和cmake关系区别
转自:https://www.zhihu.com/question/366094591.gcc是GNU Compiler Collection(就是GNU编译器套件),也可以简单认为是编译器,它可以编译很多种编程语言(括C、C++、Objective-C、Fortran、Java等等)。2.当你的程序只有一个源文件时,直接就可以用gcc命令编译它。3.但是当你的程序包含很多个源转载 2017-11-18 22:20:21 · 11757 阅读 · 1 评论 -
gdb Missing separate debuginfos, use: debuginfo-install glibc-2.17-222.el7.x86_64
1,如果没有debuginfo-install命令的话,使用yum install yum-utils来安装此命令。2,如果/etc/yum.repos.d/CentOS-Debuginfo.repo文件中的enable不为1,修改为1.3,之后就可以使用gdb中给出的建议命令来进行安装操作了。4,如果没有glibc的话,使用yum install glibc来进行安装说明,如果第三步遇到...原创 2018-05-29 13:32:05 · 3212 阅读 · 0 评论 -
fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined a
最近在转换vs2003为vs2010的时候出现标题所示问题,经过查阅资料是版本问题,问题指向stdsf。h文件中:#ifndef WINVER // 允许使用 Windows 95 和 Windows NT 4 或更高版本的特定功能。#define WINVER 0x0400 //为 Windows98 和 Windows 2000 及更新版本改变为适当的值。#endif#原创 2013-08-19 22:14:46 · 1262 阅读 · 0 评论