2017-04-03 34 views
0

我想问题是我没有使用./a.out而不是./filename,但那不是案子。我的文件可以编译,但当我尝试运行它时,我得到“没有这样的文件或目录”

这是我编好的程序编译:

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

运行:

./filename 

我想通运行并行线程的程序会比运行一个标准的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); 

} 
+0

试试这个:'./-Wal' –

+4

或者使用'g ++ -Wall -pthread -o filename filename.cpp' –

+1

工作正常。你知道当我试图编译它时,为什么找不到文件? –

回答

5

通过调用

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

你指示编译器将结果写入到一个名为-Wall文件。

你因此要使用这些

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

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

相关问题