rhel7 编写CMakeList.txt编译运行MySQL官方例子代码
注:若需要参考rhel7上安装MySQL 请 点击此处
1.下面MySQL链接库版本用到了boost(若需要请到官网下载最新链接库和文档和C++连接数据库操作示例)
Red Hat Enterprise Linux 7 / Oracle Linux 7 (x86, 64-bit), Compressed TAR Archive
2.下载boost(若需要请到官网下载最新版本)
3.CMakeList.txt(初学写的不好)
cmake_minimum_required(VERSION 2.6)
PROJECT(tools) #MESSAGE(SEND_ERROR "Send Error." "${CMAKE_CURRENT_SOURCE_DIR}")
#MESSAGE(STATUS "Status." "${PROJECT_SOURCE_DIR}")
#MESSAGE(FATAL_ERROR "Fatal Error." "${PROJECT_BINARY_DIR}") #ADD_SUBDIRECTORY(SRC_SUBDIR_LIST)
#SET(SRC_LIST ${SRC_LIST} main.cpp)
AUX_SOURCE_DIRECTORY(. SRC_LIST)
SET(EXECUTABLE ${SRC_LIST})
SET(TARGET_NAME mysqltransfer) #---include
SET(INCLUDE_LIST ${INCLUDE_LIST} ${CMAKE_CURRENT_LIST_DIR}/../include/)
INCLUDE_DIRECTORIES(${INCLUDE_LIST}) #SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/../lib/)
#ADD_LIBRARY(${LINK_NAME} SHARED ${LINKABLE})
SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../bin/)
ADD_EXECUTABLE(${TARGET_NAME} ${EXECUTABLE}) #SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMYSQLCLIENT_STATIC_LINKING=1")
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Bdynamic") #---dynamically steps---
#---step 1:copy lib*.so.7.1.1.9 /usr/local/libX
#---step 2:ln -s lib*.so.7.1.1.9 lib*.so.7
#---step 3:ln -s lib*.so.7 lib*.so #---dynamic1-mysqlcppconn---
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lmysqlcppconn")
LINK_DIRECTORIES(${CMAKE_CURRENT_LIST_DIR}/../lib/) #---dynamic2-mysqlcppconn---
#TARGET_LINK_LIBRARIES(${TARGET_NAME} mysqlcppconn) #---dynamic3-mysqlcppconn---
#FIND_LIBRARY(MySQL_CppConn NAMES mysqlcppconn PATHS ${PROJECT_SOURCE_DIR}/../lib/)
#IF(MySQL_CppConn)
# SET(LIBS_LIST ${LIBS_LIST} mysqlcppconn)
# TARGET_LINK_LIBRARIES(${TARGET_NAME} ${LIBS_LIST})
#ELSE(MySQL_CppConn)
# MESSAGE(SEND_ERROR "\tmysqlcppconn not found!\n")
#ENDIF(MySQL_CppConn) #---static-mysqlcppconn---
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ldl")
#ADD_LIBRARY(mysqlcppconn STATIC IMPORTED)
#SET_PROPERTY(TARGET mysqlcppconn PROPERTY IMPORTED_LOCATION ${PROJECT_SOURCE_DIR}/../lib/libmysqlcppconn-static.a)
#TARGET_LINK_LIBRARIES(${TARGET_NAME} mysqlcppconn pthread) #SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES -DBOOST_ROOT boost)
SET(BOOST_ROOT "/usr/local/boost")
#SET(BOOST_INCLUDEDIR "/usr/local/boost/include")
#SET(BOOST_LIBRARYDIR "/usr/local/boost/libs")
FIND_PACKAGE(Boost)
IF(Boost_FOUND)
#TARGET_INCLUDE_DIRECTORIES(${TARGET_NAME} INTERFACE ${Boost_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
#LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${Boost_LIBRARIES})
ELSE(Boost_FOUND)
MESSAGE(SEND_ERROR "\tboost not found!\n")
ENDIF(Boost_FOUND) #MESSAGE(STATUS "Test Messages:\n\t" ${PROJECT_SOURCE_DIR}/../lib/)
rhel7 编写CMakeList.txt编译运行MySQL官方例子代码的更多相关文章
- Objective-C学习备忘录:Clang编译器编译运行Objective-C代码
我们都知道可以通过Apple公司的Xcode工具来学习Objective-C编程语言,但是能不能脱离XCode这个IDE进行Objective-C学习呢?当然是可以的.首先作为计算机科班出身的程序员都 ...
- CMake 使用方法 & CMakeList.txt<转>
CMake 使用方法 & CMakeList.txt cmake 简介 CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程).他能够输出各种各样的make ...
- Cmake知识----编写CMakeLists.txt文件编译C/C++程序
1.CMake编译原理 CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多.CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt ...
- Cmake知识----编写CMakeLists.txt文件编译C/C++程序(转)
1.CMake编译原理 CMake是一种跨平台编译工具,比make更为高级,使用起来要方便得多.CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt ...
- ROS初级教程 cmake cmakelist.txt 的编写教程
有很多 的时候我们使用别人的程序包.然后添加东西的时候缺少什么东西,会使程序编译不过去,甚至无法运行,接下来介绍一下cmakelist.txt 的每一行的作用.为了以后添加和修改方便. 2.整体结构和 ...
- 单个源文件下CmakeList.txt
单个源文件下CmakeList.txt 1. main.c代码 & CmakeLists.txt 文件内容 在任意自己选定的目录下(t1/)编写main.c 与 CmakeLists.txt ...
- Linux CentOS6.5下编译安装MySQL 5.6.16【给力详细教程】
一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从http://www.cmake ...
- CentOS下编译安装MySQL 5.6.21
一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake:http://www.cnblog ...
- Android UiAutomator 自动化测试编译运行---新手2
1.首先打开eclipse创建java项目
随机推荐
- Java实现 LeetCode 117 填充每个节点的下一个右侧节点指针 II(二)
117. 填充每个节点的下一个右侧节点指针 II 给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每 ...
- Java实现LeetCode_0027_RemoveElement
package javaLeetCode.primary; import java.util.Scanner; public class RemoveElement_27 { public stati ...
- Linux 文件系统属性chattr权限
chattr命令 格式:chattr [+-=] [选项] 文件或目录名,其中,+表示增加权限,-表示删除权限,=表示等于某权限(对超级用户root也有用),比如:chattr +i /project ...
- Linux 权限管理-ACL权限
ACL权限是为了在现有的所有者.所属组.其他人不够使用的情况下使用的,使用它必须保证文件所在的分区支持ACL df -h:查看系统所有分区信息 dumpe2fs -h /dev/vda1,可以查看分区 ...
- PAT 数字黑洞
给定任一个各位数字不完全相同的 4 位正整数,如果我们先把 4 个数字按非递增排序,再按非递减排序,然后用第 1 个数字减第 2 个数字,将得到一个新的数字.一直重复这样做,我们很快会停在有“数字黑洞 ...
- 源码分析(1)-HashMap(JDK1.8)
UML类图 java.util.Map<K, V>接口,有4个实现类:HashMap.Hashtable.LinkedHashMap和TreeMap. 1.说明 (1)HashMap除允许 ...
- CRC循环冗余校验---模2除法解析
关于模2除法,网上的人说了一大堆规则和原理,感觉很容易把小白绕进去,下面我只说怎么计算,不说其中的规则和原理.
- LeetCode 75,90%的人想不出最佳解的简单题
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode专题的44篇文章,我们一起来看下LeetCode的75题,颜色排序 Sort Colors. 这题的官方难度是Medi ...
- 小师妹学JavaIO之:Buffer和Buff
目录 简介 Buffer是什么 Buffer进阶 创建Buffer Direct VS non-Direct Buffer的日常操作 向Buffer写数据 从Buffer读数据 rewind Buff ...
- vj提交时常见问题