我想从我的应用程序内部运行系统命令。假设使用 SSH 在远程服务器上运行命令。但这不是重点。关键是我不知道如何从应用程序运行任何类型的命令。我在邮件列表中询问,他们推荐我使用 C++ 构建 QML 扩展。但是我不懂 C++,似乎我必须学习这么多才能运行一个简单的命令。
在 Python 中(如在 PHP 中),很容易运行系统命令。在我的 Touch 应用程序中还有其他方法可以做到这一点,或者有人可以帮助我更多吗?或者也许对我的问题有更好的解决方案?
我想在我的 Ubuntu 系统上安装SFML(一个免费的多媒体 C++ API),这基本上不是问题。但我想知道我应该在哪里存储文件。
我可以看到,Ubuntu 将我的 C++ 标准库存储在/usr/include/c++等等中。我想要的文件?
我正在寻找的只是某种“如何做对”的方式,但我找不到答案。我希望我的图书馆保持井井有条。
我想在 Ubuntu 上试验新的 GCC 5.1 C++ 编译器。
因此,我在虚拟机中下载并安装了 Linux Ubuntu 桌面 15.04 64 位。
然后,在终端中,我输入了以下命令:
sudo apt-get update
sudo apt-get install g++5
Run Code Online (Sandbox Code Playgroud)
下载并安装了几个软件包;但是当我输入时:
g++ --version
Run Code Online (Sandbox Code Playgroud)
我仍然得到:
Run Code Online (Sandbox Code Playgroud)g++ (Ubuntu 4.9.2-10ubuntu13) 4.9.2
我也试过(从这个问题):
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install g++-5
Run Code Online (Sandbox Code Playgroud)
但我仍然得到 4.9.2 作为g++ --version.
我应该怎么做才能尝试 g++ 5.1,而不用从源代码构建整个东西?
是否可以安装预构建的二进制文件?
我正在尝试运行一个简单的程序:
\nimport <iostream>;\nint main()\n{\nstd::cout << "Hello, World!" << std::endl;\nreturn 0;\n}\nRun Code Online (Sandbox Code Playgroud)\n我已经检查过,据说我已经拥有最新版本的 gcc。\nbuild-essential 已经是最新版本(12.9ubuntu3)。
\n我尝试过运行:
\ng++ -std=gnu++20 -o hello hello.cpp \nRun Code Online (Sandbox Code Playgroud)\n或者
\ngcc -std=c++20 -o hello hello.cpp \nRun Code Online (Sandbox Code Playgroud)\n但他们俩都给了我
\nhello.cpp:1:9: error: \xe2\x80\x98iostream\xe2\x80\x99 was not declared in this scope\n 1 | import <iostream>;\n | ^~~~~~~~\nhello.cpp:1:9: error: \xe2\x80\x98iostream\xe2\x80\x99 was not declared in this scope\nhello.cpp:1:9: error: \xe2\x80\x98iostream\xe2\x80\x99 was not declared in this scope\nhello.cpp:1:9: error: \xe2\x80\x98iostream\xe2\x80\x99 was not declared in this scope\nhello.cpp:1:9: error: \xe2\x80\x98iostream\xe2\x80\x99 was not declared …Run Code Online (Sandbox Code Playgroud) 抱歉,这是一个初学者问题,但我最近开始在 Ubuntu 12.10 上使用 C++ 进行编程,并且我已经安装了一些我需要使用的库,例如PCL,但我找不到它们来将它们添加到我的项目。我使用Qt Creator作为 IDE,qmake它是随附的。
例如,对于 PCL,我按照他们网站上的说明进行操作:
sudo add-apt-repository ppa:v-launchpad-jochen-sprickerhof-de/pcl
sudo apt-get update
sudo apt-get install libpcl-all
Run Code Online (Sandbox Code Playgroud)
由于没有发生任何问题,我必须假设它们已正确安装。
我在网上找到的大多数有关添加外部库的教程都假设您使用的是 Windows 并且知道您在哪里下载了库。
由于我没有在 C++ 中添加外部库的经验,有人可以告诉我在哪个文件中,如果有,在 Ubuntu 中默认安装了库吗?
这些库文件的扩展名是什么?
是否有脚本/命令可以帮助检测库或所有已安装的库?
我安装了最新版本的 QtProject,所以现在我可以调试C++代码了。
第一次尝试调试时,我收到此错误:
ptrace: Operation not permitted.
Could not attach to the process. Make sure no other debugger traces this process.
Check the settings of
/proc/sys/kernel/yama/ptrace_scope
For more details, see /etc/sysctl.d/10-ptrace.conf
Run Code Online (Sandbox Code Playgroud) 这是一个简单的代码:
#include <iostream>
#include <algorithm>
#include <vector>
#include <functional>
#include <iterator>
#include <iomanip>
#include <cmath>
int main()
{
std::cout << "Hello, world!" << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当我想用 编译它时g++,没有问题:
$ g++ test.cpp
$ ./a.out
Hello, world!
Run Code Online (Sandbox Code Playgroud)
但如果我想这样做clang++它就不再起作用了:
$ clang++ t.cpp
t.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
^~~~~~~~~~
1 error generated.
Run Code Online (Sandbox Code Playgroud)
如果我添加选项,以下是返回 clang 的内容-v:
$ clang++ test.cpp -v
Ubuntu clang version 14.0.0-1ubuntu1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC …Run Code Online (Sandbox Code Playgroud) 我对 gcc 上的 C++ 编程完全陌生。我想为控制台输出的文本添加颜色。由于 linux 上没有 conio.h,我研究并发现 ncurses.h 可以解决问题。现在唯一的问题是我不知道如何下载然后添加库。有人可以描述一下方法吗?
另外,如果有人可以描述 ncurses.h 是否比curses.h 更好,或者我在使用curses.h 时是否完全错误?
我试图找到一种方法来检测在 Ubuntu 16.04 中打开的窗口(任何窗口)的事件
我希望能够检测到“窗口打开”事件并检查打开的窗口是否是我想要的窗口,然后运行 bash 脚本或 C/C++ 函数。
到目前为止,我发现我可以使用它wmctrl -l来查找已经打开的窗口。我可以使用这个命令,也许grep可以找到我寻找的窗口是否打开,然后根据这些信息采取行动。
我不想轮询,因为我不希望应用程序在窗口打开时处于空闲状态。动作应该尽可能“即时”。
是否有我可以监听的事件或信号来实现这一目标?从内核、窗口管理器 (Compiz) 或某些更改的日志文件?
编辑: 澄清一下,我有一个应用程序(不在我的控制之下)它可能随时显示一个窗口,这个窗口没有标题但它确实设置了 WM_CLASS(WM_CLASS 对于应用程序的所有窗口都是相同的)。我想根据显示(或创建)该窗口的事件采取行动,以最好/更容易的为准。
该窗口似乎不是在主应用程序窗口“内”打开的。使用xwininfo -children -id <window-id>显示主应用程序和搜索窗口位于不同的分支上,连接到“根窗口”。
分支看起来像这样,其中 R 是“根节点”;A 是主应用程序分支的根节点,Y 是具有搜索窗口 W 的分支的根节点:
R
/ \
A Y
/\ \
B C X
\ \
Q W
Run Code Online (Sandbox Code Playgroud)
所以我希望我能找到 YXW 的独特结构
我不确定我是否必须听所有窗口,但我假设我必须检查“根窗口”中发生的情况并尝试找到寻找的窗口。
我编写了一个 C++ 程序并编译它以生成一个.out 文件。但是,每当我尝试运行它时,都会收到 Permission Denied。我读到我们可以使用 sudo,但我无法让它正常工作。我使用类似sudo "./a.out" 的东西,但这也不起作用。
编辑:
这是我尝试“./a.out”时得到的消息。
bash: ./a.out: Permission denied
Run Code Online (Sandbox Code Playgroud)