DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  4737 随笔 :: 2 文章 :: 541 评论 :: 1614万 阅读
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

10 2020 档案

摘要:所谓的API可以从procps包的top命令,或者sysstat包的iostat命令裁剪出来,其实原理还是读/proc目录下的文件procps: http://procps.sourceforge.net/sysstat: http://sebastien.godard.pagesperso-ora 阅读全文
posted @ 2020-10-28 17:22 DoubleLi 阅读(728) 评论(0) 推荐(0) 编辑

摘要:编译程序遇到问题 relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; 发现编译的程序引用的一个库(.a文件)是直接用./configure 编译的, 64位机器不能直接./conf 阅读全文
posted @ 2020-10-27 16:16 DoubleLi 阅读(4686) 评论(0) 推荐(0) 编辑

摘要:CMake option 使用场景 : 编译脚本传递参数 -> CMake脚本接收option -> 源代码宏 编译脚本传入参数传入一个cmake option TEST_DEBUG #!/bin/sh cmake -DTEST_DEBUG=ON . cmake --build . CMake脚本接 阅读全文
posted @ 2020-10-26 15:45 DoubleLi 阅读(4567) 评论(0) 推荐(0) 编辑

摘要:合并openjpeg/soxr/vidstab/snappy等多个cmake库时,为了解决下述问题: relocation R_X86_64_32 against `.text' can not be used when making a shared object; recompile with 阅读全文
posted @ 2020-10-26 13:55 DoubleLi 阅读(3117) 评论(0) 推荐(0) 编辑

摘要:判断操作系统 通过使用内置的宏,可以进行操作系统判断 1.windows下内置了宏 WIN32 2.linux下内置宏 linux 3.Solaris下内置宏 __sun 编译器判断 VC编译器宏 _MSC_VER GCC/G++编译器宏 __GNUC__ SunCC编译器宏 __SUNPRO_C和 阅读全文
posted @ 2020-10-26 13:42 DoubleLi 阅读(349) 评论(0) 推荐(0) 编辑

摘要:在cmake脚本中,设置编译选项可以通过add_compile_options命令,也可以通过set命令修改CMAKE_CXX_FLAGS或CMAKE_C_FLAGS。 使用这两种方式在有的情况下效果是一样的,但请注意它们还是有区别的: add_compile_options命令添加的编译选项是针对 阅读全文
posted @ 2020-10-26 12:08 DoubleLi 阅读(7891) 评论(0) 推荐(0) 编辑

摘要:用途:提供一些列表操作 list(LENGTH <list><output variable>) list(GET <list> <elementindex> [<element index> ...] <output variable>) list(APPEND <list><element> [ 阅读全文
posted @ 2020-10-23 11:23 DoubleLi 阅读(2265) 评论(0) 推荐(0) 编辑

摘要:1 Linux下so的特性 1.1 So的内容 nm可以看so的导出符号表 nm -C libsayhello.so ... 00000000000006a0 T sayhello ... 可看到该so导出了一个函数,sayhello 1.2 App运行时加载的so名字 app链接时用到的so库,它 阅读全文
posted @ 2020-10-23 10:25 DoubleLi 阅读(2363) 评论(0) 推荐(0) 编辑

摘要:针对同一动态组件的不同版本链接和加载。一、概念 DLL HELL字面意思是DLL"灾难",是由于com组件(动态库)升级引起的程序不能运行的情况。 原因 有三种可能的原因导致了DLL Hell的发生: 一是由使用旧版本的DLL替代原来一个新版本的DLL而引起的。这个原因最普遍,是Windows 9X 阅读全文
posted @ 2020-10-23 10:23 DoubleLi 阅读(1058) 评论(0) 推荐(0) 编辑

摘要:[转]https://blog.csdn.net/zhanglianpin/article/details/50491958 我们在linux下开发项目,有时会对外提供动态库,像***.so.1.0.0这样子的文件,另外提供相应的头文件。用户拿到动态库和头文件说明,就可以使用动态库里的functio 阅读全文
posted @ 2020-10-23 10:18 DoubleLi 阅读(4456) 评论(0) 推荐(0) 编辑

摘要:http://www.cppblog.com/wolf/articles/74928.html http://www.cppblog.com/wolf/articles/77828.html http://www.jb51.net/article/34990.htm 1.概念和区别: 静态库就是在编 阅读全文
posted @ 2020-10-23 10:11 DoubleLi 阅读(405) 评论(0) 推荐(0) 编辑

摘要:我一直在寻找便携式方式来强制CMake启用编译器的C99功能,以避免以下 gcc错误: error: ‘for’ loop initial declarations are only allowed in C99 mode for (int s = 1; s <= in_para->StepNumb 阅读全文
posted @ 2020-10-23 09:51 DoubleLi 阅读(1433) 评论(0) 推荐(0) 编辑

摘要:在文件 CMakeLists.txt添加下面一条语句 add_definitions("-Wall -g") 阅读全文
posted @ 2020-10-22 18:03 DoubleLi 阅读(1686) 评论(0) 推荐(0) 编辑

摘要:一种是比较常见的全局设置 set(CMAKE_C_FLAGS "-std=c99") 另外一种是针对某个target设置,这样不同的target之间可以不受影响 add_executable(BiquadFilter biquad_filter.c) set_property(TARGET Biqu 阅读全文
posted @ 2020-10-22 18:01 DoubleLi 阅读(1242) 评论(0) 推荐(0) 编辑

摘要:cmake_minimum_required(VERSION 3.11) define_source_files() Project(CmakeTest)aux_source_directory(. src)#add_executable(project1 ${src}) #编译为可执行程序#add 阅读全文
posted @ 2020-10-22 12:13 DoubleLi 阅读(2707) 评论(0) 推荐(0) 编辑

摘要:CMake 手册详解 来源 http://www.cnblogs.com/coderfenghc/tag/cmake/ 公司的一个项目使用CMake作为跨平台构建工具;业务有需求,当然要好好研读一下官方的技术手册。目前的计划是先把官方手册翻译一下,了解清楚CMake中的各种命令、属性和变量的用法。同 阅读全文
posted @ 2020-10-20 16:12 DoubleLi 阅读(852) 评论(0) 推荐(0) 编辑

摘要:目录 1. 准备源文件 2. 创建目标库文件 3. 链接库文件 4. 静态库和共享库的区别 1. 准备源文件 包含: CMakeLists.txt Message.cpp Message.hpp hello-world.cpp 详见: https://github.com/dev-cafe/cmak 阅读全文
posted @ 2020-10-20 15:51 DoubleLi 阅读(1558) 评论(0) 推荐(0) 编辑

摘要:继续完善Hello World,建立它的共享库, 包括静态库和动态库。 本节的任务: 1,建立一个静态库和动态库,提供HelloFunc函数供其他程序编程使用,HelloFunc 向终端输出Hello World字符串。 2,安装头文件与共享库。 3, 编写一个程序使用创建的共享库(静态库和动态库) 阅读全文
posted @ 2020-10-20 15:46 DoubleLi 阅读(267) 评论(0) 推荐(0) 编辑

摘要:在工程搭建时,可能会有将静态库链接成动态库的需求,如出于代码保护的角度,某些模块会发布.a扩展名的静态库,我们要将多个这样的静态库链接成一个动态库。但与直接link目标文件不同的是,ld以默认参数执行时,并把静态库中没有用到的函数过滤掉,导致生成的so并未包含所要的函数,因此要加上--whole-a 阅读全文
posted @ 2020-10-20 15:34 DoubleLi 阅读(3304) 评论(0) 推荐(0) 编辑

摘要:原文:cmake 添加头文件目录,链接动态、静态库 Table of Contents 1. 添加头文件目录INCLUDE_DIRECTORIES 2. 添加需要链接的库文件目录LINK_DIRECTORIES 3. 查找库所在目录FIND_LIBRARY 4. 添加需要链接的库文件路径LINK_L 阅读全文
posted @ 2020-10-20 15:30 DoubleLi 阅读(1707) 评论(0) 推荐(0) 编辑

摘要:这里引用一篇博文cmake教程在看这篇博文前我整理了一些基础知识,如果觉得可以请收藏 C_INCLUDE_PATH(for C header files)和CPLUS_INCLUDE_PATH(for C++ header files)的环境变量是指明头文件的搜索路径,此两个环境变量指明的头文件会在 阅读全文
posted @ 2020-10-20 15:28 DoubleLi 阅读(894) 评论(0) 推荐(0) 编辑

摘要:from:https://www.hahack.com/codes/cmake/ 从实例入手,讲解 CMake 的常见用法。 什么是 CMake All problems in computer science can be solved by another level of indirectio 阅读全文
posted @ 2020-10-20 15:26 DoubleLi 阅读(299) 评论(0) 推荐(0) 编辑

摘要:前言 一个大型的工程往往包含很多模块,构建时候可以自主选择需要使用的模块,这里模拟一个任务,实现一个求指数的模块,用户可以在CMakeLists.txt文件中自由配制是否使用该模块,如果使用该模块,则需要在config.h配置文件中增加相应的宏定义 准备工作 创建sample8工程,新增Math目录 阅读全文
posted @ 2020-10-20 15:18 DoubleLi 阅读(9458) 评论(0) 推荐(0) 编辑

摘要:【引言】 说到TCP协议,相信大家都比较熟悉了,对于TCP协议总能说个一二三来,但是TCP协议又是一个非常复杂的协议,其中有不少细节点让人头疼。本文就是来说说这些头疼点的,浅谈一些TCP的疑难杂症。那么从哪说起呢?当然是从三次握手和四次挥手说起啦,可能大家都知道TCP是三次交互完成连接的建立,四次交 阅读全文
posted @ 2020-10-16 11:42 DoubleLi 阅读(547) 评论(0) 推荐(0) 编辑

摘要:1、先了解一下什么是PATH环境变量 (1)环境变量 环境变量相当于“快捷键”。 一个“HOME=/home/ACCP286”的环境变量指明你在这个电脑上的个人主目录是“/home/ACCP286”,你每次要回到个人主目录时,不需要输入“cd /home/ACCP286”,只需要“cd $HOME” 阅读全文
posted @ 2020-10-13 15:48 DoubleLi 阅读(2404) 评论(0) 推荐(0) 编辑

摘要:目录 目录 1 前言 1 方法 1 附1:链接静态库的顺序问题 2 附2:再议GCC编译时的静态库依赖次顺问题 3 附3:gcc链接参数--whole-archive的作用 4 附4:让有些“-l”链接静态库,而另一些链接共享库? 6 附5:相关博文 6 前言 C/C++程序的许多同学被静态库的依赖 阅读全文
posted @ 2020-10-13 14:05 DoubleLi 阅读(1041) 评论(0) 推荐(0) 编辑

摘要:gcc/g++链接时.o文件以及库的顺序问题 1 写在前面 最近换了xubuntu12.4,把原来的项目co出来编译的时候报“undefined reference to”。猜测是gcc的版本问题,用-v跟踪一下,发现gcc-4.6默认开 启了ld的–as-needed选项。关闭该选项(–no-as 阅读全文
posted @ 2020-10-13 13:57 DoubleLi 阅读(919) 评论(0) 推荐(0) 编辑

摘要:解决两个静态库之间相互依赖的问题 两个静态库之间相互依赖:在静态库liba.a中声明了某些函数,但是实现在libb.a中,此时a库依赖于b库;然后在静态库中libb.a中,某些结构体或者变量在liba.a中声明的,此时b库依赖于a库。 然后链接的时候,会出现两个库之间的相互依赖问题。链接涉及到顺序问 阅读全文
posted @ 2020-10-13 13:56 DoubleLi 阅读(3435) 评论(0) 推荐(0) 编辑

摘要:LD_LIBS += -lc -lfreetype -ltde -ljpge -lz -ljpeg -lplayer -lsubdec RLDFLAGS += -Wl,--start-group \ -lpthread $(LD_LIBS) -Wl,--end-group 在相互依赖的库间加上 -W 阅读全文
posted @ 2020-10-13 13:50 DoubleLi 阅读(1157) 评论(0) 推荐(0) 编辑

摘要:Linux GCC中,如果lib a依赖b,b又依赖a,链接的时候无论a放在前,还是b放在前,都会提示unrefrence。 解决办法就是: 链接的时候a链接两次,即: -la -lb -la 阅读全文
posted @ 2020-10-13 13:49 DoubleLi 阅读(1015) 评论(0) 推荐(0) 编辑

摘要:link时,若liba.a依赖libb.a,若这样写 -lb -la,则链接通不过,gcc有个选项:-Xlinker ,可以让gcc在链接时反复查找依赖库,用法 : gcc -shared -o libxx.so xx.o -L. -Xlinker "-(" -lb -la "-)" -Xlinke 阅读全文
posted @ 2020-10-13 13:46 DoubleLi 阅读(852) 评论(0) 推荐(0) 编辑

摘要:相关博文1:http://blog.chinaunix.net/uid-20682147-id-76330.html相关博文:http://blog.chinaunix.net/uid-20682147-id-5096676.html假设有如三个源代码文件: $ cat a.cpp void a() 阅读全文
posted @ 2020-10-13 13:44 DoubleLi 阅读(365) 评论(0) 推荐(0) 编辑

摘要:GCC或G++在编译链接时,如果命令行中含有库,则要特别注意了。根据《C专家编程》5.3节中的提示,GCC在链接时对命令行时的处理顺序是从左到右。证据是GCC的MAN: -l library Search the library named library when linking. (The se 阅读全文
posted @ 2020-10-13 13:39 DoubleLi 阅读(595) 评论(0) 推荐(0) 编辑

摘要:通过增加编译宏实现条件编译 ADD_DEFINITIONS(-D宏名称 -D宏名称......) camke文件如下: cmake_minimum_required(VERSION 2.8) PROJECT (hello) SET(SRC_LIST main.c) MESSAGE(STATUS "T 阅读全文
posted @ 2020-10-13 10:49 DoubleLi 阅读(3884) 评论(0) 推荐(0) 编辑

摘要:罗列一下cmake常用的命令。 CMake支持大写、小写、混合大小写的命令。 1. 添加头文件目录INCLUDE_DIRECTORIES 语法: include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...]) 它相当于g++选项中的-I参数的 阅读全文
posted @ 2020-10-12 16:36 DoubleLi 阅读(631) 评论(0) 推荐(0) 编辑

摘要:cmake中添加引用动态链接和静态链接库 ADD_EXECUTABLE(a.out ./main.cpp)TARGET_LINK_LIBRARIES(a.out /usr/lib/libeg.so) 动态库的添加: link_directories(${PROJECT_SOURCE_DIR}/lib 阅读全文
posted @ 2020-10-12 16:30 DoubleLi 阅读(10785) 评论(0) 推荐(1) 编辑

摘要:可以通过两种方式指定生成的Makefile的编译模式,一种是在cmake命令后显示指定编译模式,一种可以把编译的模式配置写在CMakeLists.txt中。 方式一:显示指定 mkdir Release cd Release cmake -DCMAKE_BUILD_TYPE=Release .. m 阅读全文
posted @ 2020-10-12 16:11 DoubleLi 阅读(309) 评论(0) 推荐(0) 编辑

摘要:http://www.hahack.com/codes/cmake/ https://sourceforge.net/projects/qmake2cmake/ --qmake转换cmake小工具 什么是 CMake All problems in computer science can be s 阅读全文
posted @ 2020-10-12 14:09 DoubleLi 阅读(3157) 评论(0) 推荐(1) 编辑

摘要:目录 为 CmakeLists.txt 添加 boost 组件 Boost 常用组件 1、时间与日期 timer, date_time, chrono 2、内存管理 system 3、实用工具库 4、字符串与文本处理 5、正确性与测试 6、容器与数据结构 7、算法 8、数学与数字 9、操作系统相关 阅读全文
posted @ 2020-10-12 14:02 DoubleLi 阅读(495) 评论(0) 推荐(0) 编辑

摘要:find_package 通过调用find_package可以找到头文件和所需要的库文件或者是一个CMake打包配置文件, find_package(Boost [version] [EXACT] # 可选项,最小版本或者确切所需版本 [REQUIRED] # 可选项,如果找不到所需库,报错 [CO 阅读全文
posted @ 2020-10-12 12:17 DoubleLi 阅读(2048) 评论(0) 推荐(0) 编辑

摘要:介绍两种方法,添加boost 依赖 CMakeLists.txt: FIND_PACKAGE(Boost) IF (Boost_FOUND) INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR}) ADD_DEFINITIONS( "-DHAS_BOOST" ) ENDI 阅读全文
posted @ 2020-10-12 11:54 DoubleLi 阅读(1645) 评论(0) 推荐(0) 编辑

摘要:from:https://mubu.com/doc/t1VDCEn4O0 安装 Windows安装 网址:https://cmake.org/download/ macOS安装 网址:https://cmake.org/download/,下载CMake,并正常安装 安装完成之后,使用以下指令创建/ 阅读全文
posted @ 2020-10-10 17:54 DoubleLi 阅读(658) 评论(0) 推荐(0) 编辑

摘要:来源 http://www.cnblogs.com/coderfenghc/tag/cmake/ 公司的一个项目使用CMake作为跨平台构建工具;业务有需求,当然要好好研读一下官方的技术手册。目前的计划是先把官方手册翻译一下,了解清楚CMake中的各种命令、属性和变量的用法。同时在工作中也会阅读CM 阅读全文
posted @ 2020-10-10 17:49 DoubleLi 阅读(855) 评论(0) 推荐(0) 编辑

摘要:VMware虚拟机在使用过程中,随着软件和数据的增多,虚拟磁盘占用的硬盘空间会逐渐增大,但删除数据后,却不会自动减小占用的物理硬盘空间 而是继续占用相应大小。如果需要解决上面的问题,就需要收缩wmware虚拟磁盘,在此笔者总结了常用的三种方法,分别如下: WMware版本:8.0.4 build-7 阅读全文
posted @ 2020-10-09 17:58 DoubleLi 阅读(721) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示