Проблема с CLion IDE при использовании флагов dlopen / libdl.co -ldl

Я тестирую простую проблему в CLion и нахожусь в тупике: похоже, я не могу включить функциональность для использования dlopen в базовом случае hello world:

#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})

person narkis    schedule 18.03.2015    source источник
comment
Можешь показать нам свой CMakeLists.txt?   -  person Biffen    schedule 18.03.2015
comment
cmake_minimum_required (ВЕРСИЯ 3.1) проект (testENC), цитирующий файл: set (CMAKE_CXX_FLAGS $ {CMAKE_CXX_FLAGS} -ldl -std = c++ 11) set (SOURCE_FILES main.cpp) add_executable (testENC $ {SOURCE_FILES})   -  person narkis    schedule 18.03.2015
comment
Взгляните на target_link_libraries().   -  person Biffen    schedule 18.03.2015
comment
Я думаю, что CMAKE_CXX_FLAGS - это флаги компиляции, вам нужно добавить флаг linking. Но, как я уже сказал, вы должны использовать для этого встроенную функциональность CMake, а не возиться с переменными.   -  person Biffen    schedule 18.03.2015


Ответы (1)


получил рабочее решение от команды CLion - оно работает!

Мне нужно объявить следующее:

target_link_libraries(testENC ${CMAKE_DL_LIBS})

person narkis    schedule 18.03.2015