【问题标题】:Executing an executable file by double clicking without terminal showing up通过双击执行可执行文件而不显示终端
【发布时间】:2021-06-05 20:23:13
【问题描述】:

我想使用 c++ 自动化一些简单的任务。例如,我希望在执行 automate 可执行文件时自动创建一个特定的文本文件。但是,当我双击该文件时,会弹出终端。有没有可以添加到我的编译器的选项或添加到我的 automate.cpp 文件的方法,以便终端无头运行?这是我的 .cpp 文件。

 #include <filesystem>
 #include <fstream>
 
 int main() {

     std::ofstream outfile("test.txt");
     outfile << "Hello World!" << std::endl;
     outfile.close();

     std::system("mv test.txt ~/Desktop");

 }

【问题讨论】:

  • 无关:不要使用std::system 移动文件。使用 std::filesystem::rename 或 C++17 之前的 std::rename
  • 您实际上无法在可执行文件本身中执行任何操作,因为正在发生的事情是 Launch Services 将您的程序视为恰好可以在终端应用程序中打开的 文档 .为了避免这种情况,我认为您要么需要制作另一个应用程序,您可以将这个“文档”与之关联(这将无头执行它),或者实际上将可执行文件转换为 LS 将视为应用程序的东西,例如 @987654323 @ 或 Platypus.
  • 非常感谢!当然我已经尝试在谷歌上找到答案,直觉好像我现在不知道如何表达我的问题。

标签: c++ macos terminal g++ executable


【解决方案1】:

如果您不希望出现控制台窗口,请不要一开始就创建控制台应用程序。改为创建一个 GUI 应用程序,而无需创建任何 UI 窗口。

【讨论】:

    猜你喜欢
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 2018-09-26
    • 2021-12-26
    • 1970-01-01
    • 2013-08-12
    相关资源
    最近更新 更多