c++ - 我的文件可以编译,但是当我尝试运行它时得到 "no such file or directory"

标签 c++ pthreads

我认为问题是我没有使用 ./a.out 而不是 ./filename,但事实并非如此。

这是我编译程序的方式:

g++ -o -Wall -pthread filename.cpp

运行:

./filename

我认为运行 pthread 程序与运行标准 c++ 程序不同,但事实并非如此。

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h> 

struct argStruct {
    int arg1;
    int arg2;

};

void *sum(void *arguments) {
    struct argStruct *args = (struct argStruct *)arguments;

    int a =  args -> arg1;
    int b =  args -> arg2;
    int c = a + b;
    printf("%d + %d = %d ",a,b,c);
    pthread_exit(NULL);

}

int main() {

    pthread_t thr1, thr2;
    struct argStruct args;
    args.arg1 = 3;
    args.arg2 = 10;

    int t1, t2;

    pthread_create(&thr1, NULL, &sum, (void *)&args);

    pthread_create(&thr2, NULL, &sum, (void *)&args);


    pthread_join(thr1, NULL);
    pthread_join(thr2, NULL);

    exit(EXIT_SUCCESS);

}

最佳答案

通过调用

g++ -o -Wall -pthread filename.cpp

您指示编译器将结果写入名为-Wall 的文件。

因此你想使用其中之一

g++ -Wall -pthread filename.cpp
g++ -Wall -pthread -o filename filename.cpp

第一个将结果写入a.out,第二个写入filename。 (它也会启用警告)

关于c++ - 我的文件可以编译,但是当我尝试运行它时得到 "no such file or directory",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43175379/

相关文章:

c++ - 纤维用例

条件变量 - 意外行为

c - 无法杀死在 NVIDIA GPU 上运行的坏内核

c - 意外的 pthread 函数输出

c++ - fatal error : opencv2/sfm. hpp : no such file or directory #include <opencv2/sfm. hpp>

c++ - "missing type specifier"构造函数声明错误

c++ - 尝试包装和覆盖全局运算符 new 时的递归调用

c++ - 使用 vector 的移动键盘排列(SEGMENTATION FAULT)

c++ - 将 argv 和 argc 传递给线程

multithreading - 测量 Linux 上的线程迁移