【问题标题】:CLion IDE issue while using dlopen / libdl.co -ldl flags使用 dlopen / libdl.co -ldl 标志时的 CLion IDE 问题
【发布时间】:2015-03-18 14:58:22
【问题描述】:

我正在 CLion 中测试一个简单的问题,但我很困惑: 看来我无法在基本的 hello world 案例中包含使用 dlopen 的功能:

#include <iostream>
#include <dlfcn.h>

using namespace std;

int main() {
   cout << "Hello, World!" << endl;

   char * file = (char*)"/path/to/file";
   dlopen(file, RTLD_NOW);


   return 0;
}

上述失败,未定义对 `dlopen' 的引用 我在 14.04 Ubuntu - 64 位 使用样板 CMakeLists.txt 文件。 看来我没有链接 libdl.so,即使我包含 -ldl 标志 可以使用一些帮助

CMakeLists.txt 文件:

cmake_minimum_required(VERSION 3.1)
project(testENC)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ldl  -std=c++11")

set(SOURCE_FILES main.cpp)
add_executable(testENC ${SOURCE_FILES})

【问题讨论】:

  • 你能告诉我们你的CMakeLists.txt吗?
  • cmake_minimum_required(VERSION 3.1) project(testENC) 引用文件: set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ldl -std=c++11") set(SOURCE_FILES main.cpp) add_executable(testENC ${SOURCE_FILES})
  • 我认为 CMAKE_CXX_FLAGScompilation 标志,您需要添加一个 linking 标志。但正如我所说,您应该为此使用 CMake 的内置功能,而不是使用变量。

标签: c++ ubuntu ide dlopen clion


【解决方案1】:

从 CLion 团队收到了一个可行的解决方案 - 它有效!

我需要添加以下广告:

target_link_libraries(testENC ${CMAKE_DL_LIBS})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 2018-08-12
    • 2020-05-08
    • 2010-09-21
    • 1970-01-01
    • 2016-05-21
    • 2018-07-05
    • 1970-01-01
    相关资源
    最近更新 更多