我在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&#39; 我在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})
答案 0 :(得分:1)
收到了来自CLION工作人员的工作解决方案 - 它有效!
我需要刊登以下内容:
target_link_libraries(testENC $ {CMAKE_DL_LIBS})