标签: c++

在实时 linux 操作系统上进行 c++ 编程

与标准 linux 内核相比,RT linux 内核上是否有任何问题的编程 RealTime C++ 应用程序(用户空间和 linux 驱动程序)?

Linux RT 补丁将更改应用于内核调度程序、信号量、静音等,我想知道这些更改是否对开发人员透明?或者在写这样的申请时需要特别小心吗?

linux real-time c++ linux-kernel

4
推荐指数
1
解决办法
3065
查看次数

ethtool 获取永久 MAC 地址返回全 0

我需要读取网络适配器的永久(烧入)MAC 地址。由于MAC地址很容易被欺骗,我需要读取写在EEPROM上的真实地址。我需要在 Linux 上使用 C++ 来完成它。

我尝试使用ethtool,它非常好并且工作正常。但是,在某些系统上,它无法按预期工作。

ethtool -P eth0
Run Code Online (Sandbox Code Playgroud)

返回这个:

Permanent address: 00:00:00:00:00:00
Run Code Online (Sandbox Code Playgroud)

ethtool -e eth0
Run Code Online (Sandbox Code Playgroud)

返回这个:

Cannot get EEPROM data: Operation not supported
Run Code Online (Sandbox Code Playgroud)

网络适​​配器具有以下信息:

  • 驱动程序:ucc_geth
  • 版本:1.1
  • 固件版本:不适用
  • 总线信息:QUICC ENGINE

Linux内核版本为:2.6.32.13

问题是:我可以通过任何更新(驱动程序、内核等)来解决这个问题吗?

此外,我使用ioctlC++ 中的函数进行了相同的 ethtool 调用。有没有办法在代码中解决这个问题?或者有没有其他方法可以从 EEPROM 中获取永久 MAC 地址?

linux networking c++ ethernet mac-address

4
推荐指数
1
解决办法
2万
查看次数

当我没有安装开发依赖项的 sudo 权限时如何在 Linux 系统上编译程序

当我没有 sudo 访问权限时,我应该如何编译依赖于未在系统上预安装开发包(头文件等)的库的程序?

在这种特殊情况下,我有 Ubuntu 12.04,但我希望有一个更通用的解决方案,因为对我来说,我需要管理员权限才能安装开发包以便我可以编译,这似乎很奇怪。

linux c sudo c++

4
推荐指数
1
解决办法
534
查看次数

这个 Linux 命令有什么作用?

g++ -Wall -I/usr/local/include/thrift *.cpp -lthrift -o something
Run Code Online (Sandbox Code Playgroud)

这是来自 Apache Thrift 网站。

-I/usr 也应该是 -I /usr 吗?

command-line compiling c++

3
推荐指数
1
解决办法
568
查看次数

针对特定机器优化c++编译

我正在编写代码来模拟将在计算集群(单节点)上运行的膜。我想优化那台机器的代码。我使用了 -optimize、-O3 和 -march=core2。

我怎么知道我是否可以改善行军因素,还有什么我可以做的事情来改善这一点?

谢谢

compiling c++

3
推荐指数
1
解决办法
243
查看次数

为已编译的 C++ 程序查找依赖项

我在 Ubuntu 13.10(32 位)中使用 Qt Creator 编写并编译了一个 C++ 程序。我尝试在新安装的 Ubuntu 13.10(64 位)中运行编译后的程序。但它没有运行。

我认为问题在于依赖关系。如何找到(=知道名称和版本)必要的依赖项?

libraries c++ qtcreator

3
推荐指数
1
解决办法
6606
查看次数

用 execl() 启动的 «sh» 变成了僵尸

折腾了半天,还是想不通,为什么用execlcall启动的dash就变成僵尸了。

下面是一个最小的测试用例——我只是 fork 一个孩子,复制 std [in,out,err]描述符,然后启动sh

#include <cstdio>
#include <fcntl.h>
#include <cstring>
#include <stdlib.h>
#include <cerrno>
#include <unistd.h>

int main() {
    int pipefd[2];
    enum {
        STDOUT_TERM = 0,
        STDIN_TERM  = 1
    };
    if (pipe(pipefd) == -1) { //make a pipe
        perror("pipe");
        return 0;
    }
    pid_t pid = fork();
    if (pid == 0)
    {// Child
        dup2(pipefd[STDIN_TERM], STDIN_FILENO);
        dup2(pipefd[STDOUT_TERM], STDOUT_FILENO);
        dup2(pipefd[STDOUT_TERM], STDERR_FILENO);
        execl("/bin/sh","sh", (char*)NULL);
        // Nothing below this line should be executed by child process. If so, …
Run Code Online (Sandbox Code Playgroud)

shell c c++ api exec

3
推荐指数
1
解决办法
1263
查看次数

在 C++ 中查找 USB 设备的信息

我需要使用我的 C++ 程序列出现有的 USB 集线器和连接在集线器中的设备。

我可以使用命令从终端打印 USB 集线器和连接在集线器中的设备

lsusb
lsusb -v 
Run Code Online (Sandbox Code Playgroud)

我想在我的 C++ 程序中使用该功能。

我如何以编程方式执行此操作。是否有任何 C++ 类可用于我的 Qt 应用程序。

usb c++

2
推荐指数
1
解决办法
3万
查看次数

如何编译手册文件.1

我有 .c、.h 和 .1 文件,如何将它们编译成一个可执行文件。.c 和 .h 文件一切都清楚,但我也有 .1,正如我从它用于手册的内容中看到的那样,如何将它们与程序链接?

c c++ linker

2
推荐指数
1
解决办法
614
查看次数

为什么我必须在运行程序之前设置 LD_LIBRARY_PATH,即使我已经在编译阶段链接了库位置?

我正在使用make. 该模型具有Makefile通过类似于-L/lib1 -L/lib2. 但是当我尝试运行该模型时,它会失败,除非我还确保环境变量

export LD_LIBRARY_PATH=/lib1:/lib2
Run Code Online (Sandbox Code Playgroud)

并指向完全相同的库。这对我来说似乎是多余的。

这里的幕后会发生什么?为什么我必须在编译之前和执行之前有效地指定库的位置?

这可能是一个愚蠢的问题;我对编译为机器代码不是很有经验,通常只使用脚本语言。

compiling libraries c++ fortran

2
推荐指数
1
解决办法
2604
查看次数