LINUX.ORG.RU

Компиляция в Code::Blocks

 ,


0

2

Добрый день. Недавно начал поставил себе Линукс, и сейчас имею некоторые проблемы с компиляцией программ в Code Blocks. Дело в том, что вместо файла .exe в папке Debug появляется файл с типом - Программа (application/x-executable). Каким образом мне именно получить exe-файл? P.S. Система Linux mint 18, Code::blocks версии 16.01, компилятор CNU GCC Compiler

Использовать компилятор из состава mingw.

FIL ★★★★ ()

А с чего ты взял, что у тебя должен появиться именно exe-шник? Твоё приложение собралось, ты получил исполняемый файл. Попробуй запустить — убедишься, что это оно.

Если тебе надо получить бинарь, которая будет запускаться в виндах, то тебе нужно кросскомпиляцию настраивать. А если бинарь, который у тебя же в минте должен запускаться, то всё хорошо, так и должно быть

XMs ★★★★★ ()
Ответ на: комментарий от FIL

А можно чуть подробнее, как это сделать? В частности, в терминале как это сделать, если возможно.

daniless ()

.exe - это просто дописка к имени файла. не парься.

conalex ★★★ ()

Вы хотите кросскомпиляцию? Чтобы бинарник в Windows запускался? В линуксе исполняемые файлы не имеют расширения exe, их можно просто запустить.

Weres ★★★ ()
Ответ на: комментарий от XMs

Мне нужен именно что бы был файл exe, повторюсь. Нужно запускать программу с винды, на другом компе. Можешь расписать как его сделать?

daniless ()
Ответ на: комментарий от daniless

Ты понимаешь, что если ты только начал работать с ОС Linux, то такие вещи как кросс-компиляция тебе еще рано?

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от daniless

Тогда, как уже советовали выше, тебе нужен mingw. Расписать не могу, ибо собирать под винды не приходилось

XMs ★★★★★ ()

Всем большое спасибо за ответы ребята. Не ожидал что комьюнити линуксоидов такое отзывчивое и адекватное.

daniless ()
Ответ на: комментарий от daniless

тут такая история, бро. бинарный формат исполняемых файлов в линукс и виндовс - разный. и сборка исполняемого файла для линукса и виндовс происходит по-разному (разными инструментами). и исполняться линуксовые исполняшки на винде не могут (и наоборот).

и тут мы приходим к вопросу - а чего тебе нужно, собственно? собрать на линуксе исполняемый файл для виндовс? тогда смотри в гугль про mingw и кросскомпиляцию (это длинный квест).

если тебе нужен исполняемый файл для линукса - то ты его уже имеешь (если сборка прошла без ошибок). запускай.

.exe как расширение для исполняемых файлов (т.е. часть имени файла) в линуксе не особо применяется, т.к. ни на что не влияет, в отличие от виндовса опять же.

conalex ★★★ ()
Последнее исправление: conalex (всего исправлений: 1)

Недавно собирал CoolReader со статическим Qt под Windows на убунточке, предварительно собрав сам Qt 4. Использовал CMake и MinGW-w64, пиши в телеграм (контакты в профиле), если что помогу тебе собрать EXE'шник. Но с Code::Blocks не работал, так как это мёртвое и глючное IDE, которое уже давно не обновляется и не развивается.

EXL ★★★★★ ()

Тебе нужен тулчейн x86_64-w64-mingw32 или типа того. Возможно, в репозитории твоего дистрибутива уже есть пакет для этого.

Deleted ()

это довольно глубокая тема. во-первых, тебе нужен тулчейн для компиляции, но кроме тулчейна обычно нужен ещё вагон и маленькая тележка всякой фигни. если софтина не чисто сишная, на стандартных вызовах, то нужны будут ещё всякие библиотеки вендозные, ресурсы и т.д. в общем, это тема для долгой и упорной возни и точно не для начинающего.

есть тематический форум по кроссплатформе. я лично уже давно не занимаюсь вендой, но там есть те, кто собирает такие вещи и они могут что-то подсказать:
http://www.forum.crossplatform.ru

Iron_Bug ★★★★ ()
Ответ на: комментарий от EXL

пиши в телеграм (контакты в профиле), если что помогу тебе собрать EXE'шник.

Я бы тоже с удовольствием почитал... Может, статейку напишешь, а?

anonymous ()
Ответ на: комментарий от anonymous

Может, статейку напишешь, а?

Прости, анончик, но маловато там материала для статейки.

Первым делом я установил пакет mingw-w64-i686-dev.

Потом скачал исходники Qt 4.8.7, отредачил файлик mkspecs/win32-g++/qmake.conf таким образом: http://paste.ubuntu.com/23591746/

Потом сконфигурировал сорцы, с флагами -static и -platform win32-g++, отключив всякие ненужные вещи вроде WebKit'а и QtQuick.

Далее склонировал сорцы CoolReader и создал Cmake-файл тулчейна:

# Toolchain-mingw64-i686.cmake
# the name of the target operating system
SET(CMAKE_SYSTEM_NAME Windows)

# which compilers to use for C and C++
SET(CMAKE_C_COMPILER i686-w64-mingw32-gcc)
SET(CMAKE_CXX_COMPILER i686-w64-mingw32-g++)
SET(CMAKE_RC_COMPILER i686-w64-mingw32-windres)

# here is the target environment located
#SET(CMAKE_FIND_ROOT_PATH  /usr/i586-mingw32msvc /home/alex/mingw-install )

# adjust the default behaviour of the FIND_XXX() commands:
# search headers and libraries in the target environment, search 
# programs in the host environment
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

Затем сконфигурировал их командой:

cmake -DCMAKE_EXE_LINKER_FLAGS:STRING="-static -static-libgcc -static-libstdc++" -DQT_QMAKE_EXECUTABLE=~/Qt4.8.7-static-win32-mingw-w64/bin/qmake -DCMAKE_TOOLCHAIN_FILE=~/Toolchain-mingw64-i686.cmake -DUSE_QT_JPEG=1 -DUSE_QT_ZLIB=1 -DUSE_QT_PNG=1 -DCMAKE_CXX_FLAGS:STRING="-D_USE_ALL_SYSTEM_FONTS" -D GUI=QT -D CMAKE_BUILD_TYPE=Release -D MAX_IMAGE_SCALE_MUL=2 -D DOC_DATA_COMPRESSION_LEVEL=3 -D DOC_BUFFER_SIZE=0x1400000 -D CMAKE_INSTALL_PREFIX=~/install_cr3 ../coolreader

CMake весьма костылен, поэтому ему нужно чёткое определение переменной QT_QMAKE_EXECUTABLE, так как без него кросс-компиляция не работает и qmake берётся системный, а не собранный.

Ну и затем обычные make -j21 && make install для получения исполняемого файла по выньду.

EXL ★★★★★ ()
Ответ на: комментарий от daniless

Не ожидал что комьюнити линуксоидов такое отзывчивое и адекватное.

Тебе просто повезло. Что-то из сорцов собираешь или своё что-то пишешь?

crutch_master ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.