cmake
文章平均质量分 89
d_o_n_g2
这个作者很懒,什么都没留下…
展开
-
Android ABI
在Eclipse或者Android Studio的project\app\src\main\jniLibs\经常可以看到下面这样的部分 不禁疑惑,这些文件是做什么的,为什么需要这么多类别的文件呢? 今天简单的探究了一下,和大家分享一下。ABI1.不同的android 手机有不同的CPU,进而支持不同的指令集。CPU和指令集的每一种组合有它自己的ABI(应用二进制文件)转载 2017-07-31 09:24:43 · 263 阅读 · 0 评论 -
GCC 编译使用动态链接库和静态链接库的方法
1 库的分类根据链接时期的不同,库又有静态库和动态库之分。静态库是在链接阶段被链接的(好像是废话,但事实就是这样),所以生成的可执行文件就不受库的影响了,即使库被删除了,程序依然可以成功运行。有别于静态库,动态库的链接是在程序执行的时候被链接的。所以,即使程序编译完,库仍须保留在系统上,以供程序运行时调用。(TODO:链接动态库时链接阶段到底做了什么)2 静态库和动转载 2017-07-26 14:12:18 · 255 阅读 · 0 评论 -
cmake 添加头文件目录,链接动态、静态库
罗列一下cmake常用的命令。CMake支持大写、小写、混合大小写的命令。 1. 添加头文件目录INCLUDE_DIRECTORIES语法:include_directories([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])它相当于g++选项中的-I参数的作用,也相当于环境变量中增加路径到CPLUS_INCLUDE_P转载 2017-07-26 14:41:27 · 2986 阅读 · 0 评论 -
"undefined reference to" 问题解决方法
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1. 链接时缺失了相关目标文件(.o)转载 2017-07-26 15:27:13 · 458 阅读 · 0 评论 -
LInux 静态库转换为动态库
将.a文件转为.so文件。http://www.tipcache.com/tip/Convert_a_static_library_(.a)_to_a_shared_object_(.so)_12.html .a files are just archives of .o object files, so all you need to do is unpack the arc转载 2017-07-26 16:02:19 · 455 阅读 · 0 评论 -
gcc和g++的区别__C++中的extern C""
********************************************************************************************************************************************gcc和g++的区别********************************************转载 2017-07-27 10:18:23 · 321 阅读 · 0 评论 -
putty windows上传文件到linux服务器 & 从linux服务器 下载文件到 windows
从putty官网下载putty软件:putty.exepscp.exepsftp.exe等软件 也可以自己下windows安装包putty-0.63-installer.exe本人直接下载putty-0.63-installer.exe安装包了,然后直接安装使用pscp方式从windows上传文件到linux服务器在CMD命令行中进入到putty安装转载 2017-07-27 15:06:23 · 425 阅读 · 0 评论 -
编译ARM平台的 QtEmbedded 的MySQL插件和移植MySQL到ARM开发板
经过几天的努力,终于交叉编译出了arm平台所需Qt/E的MySQL插件(驱动),其中顺便把mysql也移植到了mini2410的开发板上。编译器:arm-Linux-gcc(4.3.2)Pc平台:redhat由于mysql本身并不支持交叉编译,所以编译过程相对复杂,且各版本有所不同,本文针对mysql-5.1.32。1、准备工作转载 2017-07-27 16:27:29 · 1077 阅读 · 0 评论 -
Linux strace命令
简介strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。输出参数含义root@ubuntu:/usr# strac转载 2017-07-27 17:46:59 · 197 阅读 · 0 评论 -
Android IDA So的动态调试大法 标签: Androidso动态调试IDA
下面就说关于在IDA中Android so的动态调试的问题以及在so的三个层次下断点的操作。问题篇:1.动态调试的作用以及与我们常说的脱壳区别之处?2.IDA的下断点调试的原理?3.有无反调试的步骤区别?以及原理?4.反调试与反附加的区别?5.IDA动态调试so时有哪三个层次?以及如何下断点?注意:so的动态调试与脱壳在步骤上有很多的相似之处转载 2017-07-28 15:34:37 · 263 阅读 · 0 评论 -
mysql中cmake常用参数说明 和 编译安装mysql
#mysql MySQL从5.5开始,源代码安装将原来的configure改为cmake,因此在安装MySQL 5.5.x时,需要先安装cmake,可以通过源码安装,也可以通过apt-get软件包安装.在用cmake配置mysql过程中,找到一些主要的参数说明如下,供参考:CMAKE_INSTALL_PREFIX mysql的安装路径;DEFAULT_CHARSET 默认的服务器编转载 2017-08-07 08:40:03 · 1223 阅读 · 0 评论 -
android可执行文件交叉编译和运行
简介android一般使用java进行开发,但是有时候我们可能需要使用到native语言,使用C/C++进行编译运行. 现在我们可以搜到很多使用android-studio和NDK进行编译so运行的方式,我就不再赘述了,我们这里主要讲如何利用已经有的NDK工具链,直接进行编译可执行文件和运行的方法具体方法系统环境我使用的kali linux,可以认为是debian转载 2017-08-07 08:46:18 · 701 阅读 · 0 评论 -
使用CMake进行android native开发
Android NDK中提供了ndk-build脚本,以及若干mk文件,以简化ndk的开发,这对于开发一些小型应用来说足够了.如果对于一些大型工程特别是开源工程,人家是要cmake来组织的该怎么编译呢,总不能自己去重新写.mk文件吧。下面介绍对于这种项目的android库编译方法。1、下载android-cmake https://code.google.com/p/and转载 2017-08-07 09:07:13 · 628 阅读 · 0 评论 -
Android ndk 开发环境配置与调试(linux)
开发环境配置一、 Android NDK:集成了android交叉编译器,针对不同版本android平台提供了相应的gcc、g++、ndk-build、ndk-gdb等一系列编译和调试工具。安装ndk:官网下载地址:http://www.cnblogs.com/yaotong/archive/2011/01/25/1943615.html安装包选择:选择安装包需要注意转载 2017-08-07 09:20:27 · 521 阅读 · 0 评论 -
cmake使用示例与整理总结
cmake中一些预定义变量PROJECT_SOURCE_DIR 工程的根目录PROJECT_BINARY_DIR 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/buildCMAKE_INCLUDE_PATH 环境变量,非cmake变量CMAKE_LIBRARY_PATH 环境变量CMAKE_CURRENT_SOURCE_DIR 当前处理的CMakeLists.转载 2017-08-03 14:41:18 · 236 阅读 · 0 评论 -
CMake里面怎么递归地设定头文件的搜索目录
本文内容要点:1. 多目录下,头文件路径包含2. 项目依赖关系设置3. 发现的一些问题本文涉及到的CMake命令:project(name) : 设置project的名字为name。add_dependencies:设置依赖关系add_subdirectory:添加子目录add_executable:添加可执行文件add_library:添加库cmake_minimum_required:设置cm转载 2017-08-03 14:30:19 · 14581 阅读 · 2 评论 -
深入理解 Android NDK 编译
使用 CMake 进行Android NDK编译的原理介绍Android Studio 2.2 及以后的版本默认使用CMake进行 NDK 编译 , 其中最吸引人的地方是,在开发NDK程序时可以进行联机调试,这真是大在的方便了开发者开发NDK程序的效率了。 那么使用CMake编译NDK程序是否与我们之前介绍的使用ndk-build编译有很大的不同呢?下面我们就来一窥它的转载 2017-07-31 11:31:59 · 1437 阅读 · 0 评论 -
GNU的ar、ranlib和nm区别(转)
GNU的ar、ranlib和nm区别(转) 2011-12-14 15:59:15| 分类: Linux学习 | 标签:静态库 动态库 gcc linux |字号 订阅RANLIB 的作用:CC = CC=/usr/local/ndk/toolchain/arm-eabi/bin/arm-eabi-gccLD = LD=/usr/local/ndk/转载 2017-08-01 10:24:36 · 839 阅读 · 0 评论 -
CMAKE的一些编译选项 -lpthread
set(CMAKE_BUILD_TYPE "Release")if( CMAKE_BUILD_TYPE STREQUAL "Debug" ) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -g -Wall -Wno-unused-variable -pthread")else( CMAKE_BUILD_TYPE ST转载 2017-07-25 09:23:28 · 13061 阅读 · 0 评论 -
cmake的使用
一、 基本使用安装:下载二进制包后可直接解压使用从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败使用:cmake dir_path,生成工程文件或makefile文件二、 概念out-of-source build,与in-source build相对,即将编译输出文件转载 2017-08-02 14:47:53 · 520 阅读 · 0 评论 -
CMake can't find Curses
Another way to fix it is to add these 2 lines to FindCurses.cmake (on top):set(CURSES_LIBRARY "/opt/lib/libncurses.so")set(CURSES_INCLUDE_PATH "/opt/include")转载 2017-07-25 11:45:10 · 228 阅读 · 0 评论 -
ubuntu9.04 交叉编译mysql5.5
转载自:http://blog.csdn.net/dlutxie/article/details/8654677环境:PC机 ubuntu9.04 交叉编译器:gcc-linaro-arm-Linux-gnueabihf-4.7-2013.02-01-20130221_linux,本地gcc: gcc 4.3.3开发板:OMAP4 cortex-a9 系统:ubuntu12.04转载 2017-07-25 11:52:38 · 1444 阅读 · 0 评论 -
注意头文件规则,避免链接错误:重复定义(multiple defination)
Cmd Markdown 编辑阅读器https://zybuluo.com/uuprince/note/81709编译链接 C++程序编译的时候遇到了一个重复定义的问题,研究一下发现自己在编译和链接过程中还有一些不清楚的地方,发文章总结一下。几个问题:头文件中只可以放置函数声明,不可以放置函数定义吗?为什么有些头文件中直接把函数定义都写进去了?模板函转载 2017-07-25 15:32:36 · 749 阅读 · 0 评论 -
GCC 中 undefined reference to ‘ceil’ collect2:ld returned 1 exit status 错误
当我们用gcc编译一个c文件时,如果用到了math.h中的一些数学函数,例如:ceil(),floor()等,可能会出现如下错误:undefined reference to ‘ceil’ collect2:ld returned 1 exit status主要是因为使用math.h中声明的库函数时,gcc命令行必须加-lm选项,如果没有加就会出现上面的错误,原因在于数学转载 2017-07-25 15:41:18 · 1371 阅读 · 0 评论 -
undefined reference to `history_get'
You need to link againts the actual library using -lreadline in gcc arguments. 如果在cmake 里面注意在cmakelist.txt配置,这里面的特别编译选项的配置尤其重要。下面列出我arm-linux-gcc cmake 编译mysql-5.5.32 时的编译设置:#project(${PROJECTNAM原创 2017-07-25 16:00:28 · 396 阅读 · 0 评论 -
makefile 写法思路示例
有时候配置 configure文件的时候 ,老是很难想出来把参数以什么方式传过去,这里主要列举自己写的和网上的一些列子,以便开阔思路./configure --prefix=/usr/arm-lib-needed -target=arm64-v8a CC="aarch64-linux-android-g++ --sysroot=/usr/ndk/android-ndk-r14b/pl原创 2017-08-01 10:02:32 · 338 阅读 · 0 评论 -
cmake参数说明手册
MySQL CMake参数说明手册MySQL自5.5版本以后,就开始使用CMake编译工具了,因此,你在安装源文件中找不到configure文件是正常的。很多人下到了新版的MySQL,因为找不到configure文件,不知道该怎么继续下去。有没有一篇可供参考的文章呢?其实在http://forge.mysql.com网站上有一篇文章,专门介绍了如何用CMake工具进行新版MyS转载 2017-08-02 17:12:56 · 2179 阅读 · 0 评论 -
CMake 学习(一):使用链接第三方库
CMakecmake是gnu工具链中构建项目的重要一环,而且在windows Linux OS X中都可以使用,是程序员(特别是linux程序员,因为windows上有无比强大的VS)必备的基本功。命名变量 set(INC_DIR /usr/local/include) set(LINK_DIR /usr/local/lib) set(SOURCE_FILES转载 2017-07-25 16:38:25 · 790 阅读 · 0 评论 -
cmake使用示例与整理总结
转载自:http://blog.csdn.net/wzzfeitian/article/details/40963457/如有侵权,我会立马给予删除。cmake中一些预定义变量PROJECT_SOURCE_DIR 工程的根目录PROJECT_BINARY_DIR 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/buildCMAKE_INC转载 2017-07-25 17:19:54 · 236 阅读 · 0 评论 -
SirDigit CMake 手册详解(二十二)
SirDigitCMake 手册详解(二十二)CMD#65: separate_arguments 将空格分隔的参数解析为一个分号分隔的list。 separate_arguments( _COMMAND "") 解析一个unix或者windows风格的命令行字符串"",并将结果以分号分隔的list的形式存储到中。整个命令行都必须从这个""参数中给出转载 2017-08-07 12:53:16 · 311 阅读 · 0 评论