• 在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

  • 相关阅读:
    我们的CPU遭到攻击[LOJ558]
    历史[ZJOI2018]
    字符串[LOJ6517]
    奥运公交[LOJ3255]
    BLO-Blockade[POI2008]
    压力[BJOI2013]
    Earthquake[USACO01OPEN]
    暴力写挂[CTSC2018]
    极简教程:数据结构与算法(二)
    DllRegisterServer的调用失败的问题解决方法
  • 原文地址:https://www.cnblogs.com/milton/p/7987021.html
Copyright © 2020-2023  润新知