Apache ORC项目编译

1、下载源码,在Linux机器上手动编译

参考链接:https://github.com/apache/orc
 mkdir build
 cd build
 cmake .. 
 make package
  • 在编译的过程中 会下载项目依赖的第三方库的源码,并编译

  • 可能遇到某些第三方包无法下载的问题,可以手动下载之后,把包名放在对应的目录下

  • 编译完成之后 会在build目录中生成很多文件
    image-20230913113153219

  • 包括依赖的第三方库文件,在目录:${CMAKE_BINARY_DIR}/c++/libs/thirdparty,

2、clion配置注意事项

如果clion使用的是远程编译,先把源码同步下来

因为手动cmake编译选择 目录是build目录,所以clion使用cmake 工具链时,也选择build目录
image-20230913154235091

使用idea打开java目录,发现找不到类org.apache.orc.OrcProto,这个类是在手动编译时自动生成的,位置在如下图:

image-20230914091355206

把包含OrcProto.java 文件的org目录复制到idea的core maven工程下

3、项目中用的cmake语法解释

C++项目一般使用cmake生成跨平台打包文件(包括makeFile等等)

cmake 不编译源码,它只生产编译源码的中间产物,如makeFile 文件

find_path的使用说明

//在指定目录(${CMAKE_SOURCE_DIR}/include)下查找add.h文件,如果找到将路径返回给ADD_INCLUDE_DIR

find_path(ADD_INCLUDE_DIR add.h ${CMAKE_SOURCE_DIR}/include

find_library的使用说明

//在指定目录(${CMAKE_SOURCE_DIR}/lib)下查找add库,如果找到将路径返回给ADD_LIBRARY,
//NAMES : 要查找的库名字,可以有多个
//PATHS:查找的路径,可以有多个
find_library(ADD_LIBRARY NAMES add PATHS ${CMAKE_SOURCE_DIR}/lib)


find_package说明

用于查出第三方库
比如 : 
find_package(Add) 当运行这行代码的时候cmake会去路径 CMAKE_MODULE_PATH 下去找:FindAdd.cmake 并运行
也可以查找系统库,如下:
FIND_PACKAGE(Threads REQUIRED)

target_include_directories 、target_link_libraries说明

target_include_directories(main PRIVATE ${ADD_INCLUDE_DIR})
target_link_libraries(main ${ADD_LIBRARY})
为目标程序main  添加include的头文件列表,添加lib文件列表
if (BUILD_CPP_TESTS) 判断全局变量BUILD_CPP_TESTS是否定义了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值