g++ скомпилированное приложение не работает

Я написал код моделирования на C++ и скомпилировал его в исполняемый файл, используя g++, Однако выходной файл ничего не делает при двойном щелчке. Я также проверил "разрешить использование файла в качестве исполняемого файла", но все равно ничего не происходит. Любые альтернативные способы я должен попробовать или что-то не так?

РЕДАКТИРОВАТЬ: он настроен для запуска в качестве приложения WINE, хотя я удалил WINE с помощью apt-get purge Некоторое время назад Может ли это быть проблемой? Может быть, я должен попробовать другую программу, чтобы запустить его. Что на самом деле должно быть установлено по умолчанию?

РЕДАКТИРОВАТЬ 2: я выполнил компиляцию, используя:

$ sudo g++ -o main main.cpp

Это простое приложение командной строки без графического интерфейса.

2 ответа

Решение

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

Вы можете запустить исполняемый файл из существующей оболочки, вызвав его ./path/to/executable

Второй, более сложный вариант - создать файл рабочего стола для запуска приложения из файла ex и настроить его на отображение вывода терминала.

Предположим, у меня есть очень простое приложение, такое как

#include <iostream>
#include <stdlib.h>
int main() {
    std::cout << "hello bob" << std::endl;
    system("read moo"); // pause for input at the end.
    return 0;
}

И я собираю это с g++ foo.cpp который по умолчанию выводит a.out файл.

Тогда просто создайте foo.desktop файл, содержащий

[Desktop Entry]
Type=Application
Name=Awesome App
Terminal=true
Exec=/path/to/a.out

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

Попробуйте запустить его в терминале. Если это программа командной строки, вы не сможете сделать многое, просто дважды щелкнув исполняемый файл в файловом менеджере. Запустите следующее в терминале:

cd /path/to/directory

Замена /path/to/directory с путем к каталогу, в котором находится ваш бинарный файл;

sudo chmod +x binaryName

Чтобы убедиться, что ваш бинарный файл исполняемый (замените имя бинарного на его имя);

./binaryName

Выполнить это.

Другие вопросы по тегам