0 / 0 / 0
Регистрация: 18.07.2018
Сообщений: 2
1

Не удается динамически подгрузить библиотеку, собранную с MinGW и CMake в CLion

06.06.2021, 14:29. Показов 5993. Ответов 0

Собрал свою библиотеку в CLion с помощью MinGW (x86) и CMake. Далее собрал программу, в которую можно динамически подгружать dll-библиотеки (тоже x86). В результате получаю сообщение об ошибке (GetLastError возвращает ошибку 126).

"Library libshared not found! Error is: 126"
Подскажите, пожалуйста, в чем может быть проблема?

Код этой программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <Windows.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
 
using namespace std;
 
typedef int (*function)(int a);
 
std::wstring s2ws(const std::string& s) {
    int len;
    int slength = (int)s.length() + 1;
    len = MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, 0, 0);
    wchar_t* buf = new wchar_t[len];
    MultiByteToWideChar(CP_ACP, 0, s.c_str(), slength, buf, len);
    std::wstring r(buf);
    delete[] buf;
    return r;
}
 
int main() {
    string name;
    cout << "Enter the name of library: ";
    cin >> name;
 
    wstring stemp = s2ws(name);
    LPCWSTR result = stemp.c_str();
 
    HMODULE hm = LoadLibrary(result);
 
    if (hm == NULL) {
        cout << "Library " << name << " not found! Error is: " << GetLastError() << endl;
        system("pause");
    }
    else {
        cout << "Library " << name << " is loaded" << endl;
        function add = (function)GetProcAddress(hm, "hello");
 
        add(321);
    }
 
    FreeLibrary(hm);
 
    _getch();
    return 0;
}
Код моей dll-библиотеки:
C++
1
2
3
4
5
6
7
#include <iostream>
 
extern "C" void __declspec(dllexport) f();
 
void f() {
    std::cout << "Test";
}
Код CMakeLists.txt:
C++
1
2
3
cmake_minimum_required(VERSION 3.0)
project(sharedLibsDemo)
add_library(shared SHARED shared.cpp)
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2021, 14:29
Ответы с готовыми решениями:

Скачал Clion, установил MinGW, пытался настроить, но так и не смог. Clion говорит, что Cmake выдаёт ошибку
Скачал Clion, установил MinGW, пытался настроить, но так и не смог. Clion говорит, что Cmake выдаёт...

Как OpenSSL добавить в линковку CLion (используется cmake и mingw)
Приветствую, друзья. Как добавить OpenSSL в линковку проекта? Я видел FingOpenSSL (cmake), но...

[CLion] настройка дебагера на Windows 10. Не работает дебаг с профилем Visual Studio или CMake с профилем MinGW
Сделал скриншоты с настройками. Как это дело настроить? На Mac OS поставил, всё работает из...

Не удается динамически подгрузить класс
Доброго времени суток! :) Пытаюсь динамически создать объект необходимого класса, однако (никак...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2021, 14:29

Qt creator. Не удается добавить стороннюю библиотеку в проект cmake (добавление в проект boost/algorithm)
Собственно, весь вопрос в заголовке. Осваиваю cmake, не могу подключить &quot;алгоритм&quot; из буст. ...

CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM
Установил CMake. Здесь находится mingw D:\ProgramFiles\Qt\Tools\MinGW\bin mingw32-make.exe(путь в...

Как распространять программу, собранную в компиляторе gcc пакета MinGW, без открытого кода?
Извини, уважаемый администратор. Скорее всего этот вопрос не в том разделе создан. Но я не нашёл...

CMake, CLion, PDCurses
Возникли проблемы с подключением файлов библиотеки PDCurses. CMake находит ее, подключает, но потом...

Boost + Cmake + Clion
Помогите мне подключить Boost к Clion на Windows. Перепробовал уже кучу вариантов - ничего не...

Нужно интегрировать библиотеку, собранную на Фортране, в проект C#
мне нужно итегрировать библиотеку собранную на фортран в проектC#/ для начала нужна простая...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.