如何为 C 程序创建 .desktop?

如何为 C 程序创建 .desktop?

因此,我尝试通过双击来执行 C 终端程序。我尝试通过 .desktop 文件执行此操作

  • 桌面文件具有作为文件执行的权限,并且它位于我的桌面中。
  • 该程序名为 teste,等待用户输入,它位于 /home/vithor/
  • 我正在使用 PopOs(它是一个“ubuntu 发行版”);
  • 我已经允许可执行文件在 nautilus 配置中启动;
[Desktop Entry]
Version=1.0
Name=ProgramName
Comment=This is my comment
Exec=/home/vithor/teste
Icon=/home/vithor/Pictures/Icons/books.png
Terminal=true
Type=Application
Categories=Utility;
~                    

但它不起作用,我做错了什么?或者我有什么其他选择,只需单击它即可运行 C 程序?

答案1

我假设该程序的名称是teste,它位于您的主文件夹中。

  1. 从第一行删除#!/usr/bin/env bash。第一行应该是[Desktop Entry]

  2. 将条目更改Exec

    Exec=/home/vithor/teste
    
  3. 将最后一行更改为Categories=Utility

  4. 使用命令将.desktop 文件标记为可执行文件chmod +x /path/to/file.desktop

现在,当您双击它时它应该可以工作。

但是,如果 C 程序应该在终端中打印而不执行其他任何操作,那么它将打印结果并快速关闭终端,您将看不到任何内容。在这种情况下,请更改源,使其等待您输入一些字符后再关闭。

示例代码:

#include <stdio.h>

void main(){
// your code here

int a;
printf("enter any character to terminate: ");
scanf("%d",&a);
}

现在使用以下代码编译代码

gcc path/to/source.c -o teste

答案2

使用此.desktop 文件:

[Desktop Entry]
Version=1.0
Name=ProgramName
Comment=This is my comment
Exec=x-terminal-emulator -e /bin/bash -c '/home/vithor/teste ; echo "" ; echo "Press Enter to close....." ; read'
Icon=/home/vithor/Pictures/Icons/books.png
Terminal=true
Type=Application
Categories=Utility;

它会打开一个终端,运行你的程序,并且在程序完成后,它会等到你按下 Enter 键才将其关闭。

顺便说一句,我已经测试过这个并且它确实有效。

如果这对您有用,请单击此答案左侧的勾号图标以接受该答案。

相关内容