0

我正在 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})
4

1 回答 1

2

从 CLion 工作人员那里收到了一个可行的解决方案——它有效!

我需要添加以下内容:

target_link_libraries(testENC ${CMAKE_DL_LIBS})

于 2015-03-18T16:58:26.853 回答