我的文件可以编译,但我得到了#34;没有这样的文件或目录"当我试图运行它

时间:2017-04-03 01:38:28

标签: 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);

}

1 个答案:

答案 0 :(得分:5)

致电

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

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

因此,您想使用其中一个

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

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