在项目中, 需要使用到libevent-2.1.x, 但是Ubuntu16.04自带的libevent版本为2.0.5, 需要另外编译安装新版的libevent, 安装过程很简单
tar zxvf libevent-2.1.8-stable.tar.gz cd libevent-2.1.8-stable/ # 指定另外的安装路径, 以免覆盖系统自带的版本 ./configure --prefix=/opt/lib/libevent make sudo make install
安装完成提示
Libraries have been installed in:
/opt/lib/libevent/lib
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the '-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the 'LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the 'LD_RUN_PATH' environment variable during linking - use the '-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to '/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages.
接下来, 需要在CLion中配置项目使用这个版本的libevent, 修改CMakeLists.txt
cmake_minimum_required(VERSION 3.8) project(untitled) set(CMAKE_C_STANDARD 99) # add extra lib directories link_directories(/opt/lib/libevent/lib) # add extra include directories include_directories(/opt/lib/libevent/include) set(SOURCE_FILES demo1.c) add_executable(untitled ${SOURCE_FILES}) # specify the dependency on an extra library target_link_libraries(untitled event)
注意:
1. 不需要编译的文件, 都从set(SOURCE_FILES ...)中去掉
2. link_directories 和 include_directories 需要指向新库的路径
3. target_link_libraries 需要放在 add_executable之后, 对于第二个参数, 可以使用 .a 文件名, 例如 libevent.a 或者库名, 例如 event