С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
Кроссплатформенная разработка
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Ni55aN
-33 / 1 / 0
Регистрация: 07.04.2012
Сообщений: 85
1

Cmake с MinGW - сборка dll

23.10.2015, 13:19. Просмотров 916. Ответов 2
Метки нет (Все метки)

Хочу создать dll, которое будет содержать модули приложения, использующие SDL2. Но в данный момент есть несколько проблем: Собирая через Cmake
Bash
1
2
3
4
5
6
7
find_package(OpenGL REQUIRED)
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mwindows -shared -o libproj.dll -std=c++11 -lmingw32 -lSDL2main -lSDL2 -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid")
 
    add_executable(${PROJECT_NAME} helloclass.cpp)
    include_directories(${PROJECT_NAME} C:/OpenGL/SDL2/include)
 
    TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OPENGL_LIBRARIES})
На выходе получаю exe размером почти 5 МБ, как я понимаю, он содержит все реализации библиотеки sdl и приложение не просит ее из вне?

Собрав без
Bash
1
cmake g++ helloclass.cpp -IC:/OpenGL/SDL2/include -LC:/OpenGL/SDL2/i686-w64-mingw32/lib -lmingw32 -lglu32 -lopengl32 -lSDL2main -lSDL2
Получаю то что нужно(exe размером ~50 kb, использующий SDL2.dll), но цель состоит в немного другом:

sdl2.dll должен использоваться внешний
Нужно собрать dll, его же использовать в приложении Win32, и он же должен использовать SDL2.dll
По второму пункту проходит сборка без Cmake

Bash
1
g++ helloclass.cpp -shared -o libproj.dll -IC:/OpenGL/SDL2/include -LC:/OpenGL/SDL2/i686-w64-mingw32/lib -lmingw32 -lglu32 -lopengl32 -lSDL2main -lSDL2
А с Cmake собирает только 5МБ exe'шники, не требующие SDL2.dll
Bash
1
2
find_package(OpenGL REQUIRED)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lmingw32 -lSDL2main -lSDL2 -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid")
Bash
1
2
3
4
5
add_executable(${PROJECT_NAME} helloclass.cpp)
#add_library(${PROJECT_NAME} SHARED helloclass.cpp) # при этом получаю undefined reference to `SDL_GL_SwapWindow'
include_directories(${PROJECT_NAME} C:/OpenGL/SDL2/include)
 
TARGET_LINK_LIBRARIES(${PROJECT_NAME} C:/OpenGL/SDL2/i686-w64-mingw32/lib ${OPENGL_LIBRARIES})
Просто уже нереально запарился за эти две недели попыток настроить приложение для кроссплатформенной разработки
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.10.2015, 13:19
Ответы с готовыми решениями:

MinGW версии 4.5.0 содержит libgcc_s_dw2-1.dll без которой ни одна скомпилированная прога не запускается. А как же запускать проги на других машинах?
То есть установил такой пакет и скомпилил прогу #include <stdio.h> using...

сборка CMake* windows qt mingw53_32
Добрый день. Второй день пытаюсь собрать библиотеку libtorrent ...

Кто может поделиться файлами ogg.dll, vorbis.dll и vorbisfile.dll - 32-х и 64-битными версиями?
Движок перевожу на платформу Win64 и нужно, чтобы разрядность ЕХЕ и DLL...

Исходники - CMake - пакеты
Добрый день. Коллеги, я совершенно запутался и прошу Вашей помощи. ...

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

2
Dmitriy_M
1429 / 1309 / 131
Регистрация: 20.03.2009
Сообщений: 4,680
Записей в блоге: 11
27.10.2015, 23:21 2
Что за чушь ты пишешь?
Код
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -lmingw32 -lSDL2main -lSDL2 -lm -ldinput8 -ldxguid -ldxerr8 -luser32 -lgdi32 -lwinmm -limm32 -lole32 -loleaut32 -lshell32 -lversion -luuid")
0
Ni55aN
-33 / 1 / 0
Регистрация: 07.04.2012
Сообщений: 85
16.11.2015, 17:31  [ТС] 3
Цитата Сообщение от Dmitriy_M Посмотреть сообщение
Что за чушь ты пишешь?
омг... прощайте
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2015, 17:31

CMake и организация сборки проекта
В общем, вопрос таков: каким образом можно "наставить" cmake, чтобы он собирал...

Как добавить путь в CMake
Привет всем. Как мне добавить путь к CMake? Интересует только для Windows, для...

Создание цели скрипта в cmake
Приветствую. Возникла следующая проблема, не как не могу найти как добавить...


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

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

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