编译
Linux版本编译
编译前准备
编译目标
Makefile描述了整个项目的所有编译目标,主要的包括:
目标 | 描述 |
---|---|
core | 仅编译C++核心 |
plugin | 仅编译Go插件 |
all | 编译完整LoongCollector |
dist | 打包发行 |
docker | 制作LoongCollector镜像 |
plugin_local | 本地编译Go插件 |
使用make <target>
命令编译所选目标,如果需要指定生成的版本号则在编译命令前加上VERSION环境变量,如:
如果发生编译错误,如
请确保本地编译镜像为最新版本。可使用以下命令更新:
使用镜像编译完整LoongCollector
编译完整LoongCollector的命令是make all
,由于all是默认的编译目标,因此也可以直接make
。该命令首先清理output
目录,然后调用./scripts/gen_build_scripts.sh
脚本生成编译用的脚本和镜像描述保存到./gen
目录,调用 docker 制作镜像,制作的过程即镜像内的编译过程,最后将镜像内的编译结果复制到output
目录。
以下命令可以快速编译出LoongCollector的可执行程序和插件。
-
进入源代码顶层目录。
-
执行命令
make
。 -
查看
output
目录结果。
开发环境增量编译的方法请参考开发环境。
Go插件本地编译
Go插件可以在主机上进行直接编译,编译前,需要安装基础的 Go 1.16+
语言开发环境,如何安装可以参见官方文档。
在安装完成后,为了方便后续地开发,请遵照此文档正确地设置你的开发目录以及 GOPATH 等环境变量。。
如果未对只是对插件依赖库进行修改,则只需要执行最后一行命令即可。
Windows版本编译
编译前准备
- 装备一台windows机器
- 安装Visual Studio Community Edition,推荐2017版本
- 安装golang
- 安装MinGW(根据windows机器位数选择对应版本)
- 下载相应位数的C++ boost库,安装
- 下载相应位数的ilogtail-deps编译依赖,解压
修改编译脚本
将ilogtail/scripts/windows64_build.bat(windows32_build.bat)脚本中的的BOOST_ROOT、ILOGTAIL_DEPS_PATH、CMAKE_BIN、DEVENV_BIN、MINGW_PATH五个环境变量值替换成编译机器上实际的路径
执行编译脚本
cd 到ilogtail/scripts目录下,执行windows64_build.bat(windows32_build.bat)脚本,等待约6分钟,完成编译。
编译产物列表:
- ilogtail.exe (主程序)
- PluginAdapter.dll (插件接口)
- PluginBase.dll (插件lib)
- PluginBase.h
编译时替换外部模块
LoongCollector通过 Provider 模块暴露出一些拓展点,这些拓展点可以由用户自行实现,并通过编译时CMAKE DPROVIDER_PATH选项替换掉默认的实现。
示例: