我已经制作了一个简单的ncurses程序,但它需要在终端内运行以显示任何内容。 如果有人只是在X11的文件管理器窗口中双击它,程序将不会产生任何输出。 所以我的问题是,我怎么能这样做,如果有人双击二进制文件,它会自动创建一个终端窗口在其中运行? (而不是那个人必须打开终端并且必须输入命令才能导航并执行它。)
答案 0 :(得分:0)
您可以创建一个简单的bash shell脚本:
#!/bin/bash
xterm -e "your command"
答案 1 :(得分:0)
这可能是一个黑客,但你可以制作一个这样的myapp,运行myapp:
#include <cstdlib>
#include <stdlib.h>
int main() {
char *display = getenv("DISPLAY") ;
if(display){
std::system("/etc/alternatives/x-terminal-emulator -e <myapp>");
} else {
std::system("<myapp>");
}
return 0;
}
或者在单个可执行文件中,如下所示:
#include <cstdlib>
#include <stdlib.h>
#include <string>
int main(int argc, char** argv) {
char *display = getenv("DISPLAY") ;
std::string args = "";
for(int i=1;i<argc;i++){
args = argv[i];
if(args == "--with-term") display = NULL;
}
if(display){
std::system("/etc/alternatives/x-terminal-emulator -e <myapp> --with-term");
return 0;
}
//else
//my app code
return 0;
}