在CLion項目中指定不同版本的鏈接庫


在項目中, 需要使用到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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM