gpt4 book ai didi

c++ - 'void' 编译器 : TDM-GCC 4. 6.1 64 位之前的预期主表达式

转载 作者:行者123 更新时间:2023-11-27 23:17:59 31 4
gpt4 key购买 nike

如何在“void”编译器之前修复 [Error] expected primary-expression:此代码上的 TDM-GCC 4.6.1 64 位

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

using namespace std;

#define NUM_THREADS 5

int main ()
{
pthread_t threads[NUM_THREADS];
int rc;
int i;
for( i=0; i < NUM_THREADS; i++ ){
cout << "main() : creating thread, " << i << endl;
**rc = pthread_create(&threads[i], NULL, void * (*threadid *PrintHello));**
if (rc){
cout << "Error:unable to create thread," << rc << endl;
exit(-1);
}
}
pthread_exit(NULL);
}

void *PrintHello(void *threadid)
{
intptr_t tid;
tid = (intptr_t) threadid;
cout << "Hello World! Thread ID, " << tid << endl;
pthread_exit(NULL);

}

我该如何解决这个错误,欢迎任何帮助,在此先感谢!

编辑!这是确切的编译器投诉

Compiler: TDM-GCC 4.6.1 64-bit
Executing g++.exe...
g++.exe "C:\Users\Thomas\Documents\c++\stuff\threads.cpp" -o "C:\Users\Thomas\Documents\c++\stuff\threads.exe" -march=pentium2 -mtune=pentium2 -msse2 - O2 -m32 -std=gnu++98 -pg -g3 -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64- mingw32\include" -L"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib" -static-libgcc -m32 -pg -g3
C:\Users\Thomas\Documents\c++\stuff\threads.cpp: In function 'int main()':
C:\Users\Thomas\Documents\c++\stuff\threads.cpp:16:45: error: expected primary-expression before 'void'

Execution terminated


[Error] expected primary-expression before 'void'

再次编辑添加了完整的错误,错误就在这一行

rc = pthread_create(&threads[i], NULL, void * (*threadid *PrintHello));

16 45 C:\Users\Thomas\Documents\c++\stuff\threads.cpp [Error] expected primary-expression before 'void' 

编辑 3

感谢 paul R 在做出上述更改后提供的部分解决方案,我明白了

Compiler: TDM-GCC 4.6.1 64-bit
Executing g++.exe...
g++.exe "C:\Users\Thomas\Documents\c++\stuff\threads.cpp" -o "C:\Users\Thomas\Documents\c++\stuff\threads.exe" -march=pentium2 -mtune=pentium2 -msse2 -O2 -m32 -std=gnu++98 -pg -g3 -I"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\include" -L"C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib" -static-libgcc -m32 -pg -g3
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingw32.a when searching for -lmingw32
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libmingw32.a when searching for -lmingw32
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmoldname.a when searching for -lmoldname
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libmoldname.a when searching for -lmoldname
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingwex.a when searching for -lmingwex
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libmingwex.a when searching for -lmingwex
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmsvcrt.a when searching for -lmsvcrt
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libmsvcrt.a when searching for -lmsvcrt
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libgmon.a when searching for -lgmon
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libgmon.a when searching for -lgmon
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libadvapi32.a when searching for -ladvapi32
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libadvapi32.a when searching for -ladvapi32
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libshell32.a when searching for -lshell32
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libshell32.a when searching for -lshell32
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libuser32.a when searching for -luser32
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libuser32.a when searching for -luser32
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libkernel32.a when searching for -lkernel32
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libkernel32.a when searching for -lkernel32
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingw32.a when searching for -lmingw32
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libmingw32.a when searching for -lmingw32
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmoldname.a when searching for -lmoldname
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libmoldname.a when searching for -lmoldname
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmingwex.a when searching for -lmingwex
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libmingwex.a when searching for -lmingwex
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib/libmsvcrt.a when searching for -lmsvcrt
c:/program files (x86)/dev-cpp/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/4.6.1/../../../../x86_64-w64-mingw32/bin/ld.exe: skipping incompatible C:\Program Files (x86)\Dev-Cpp\MinGW64\x86_64-w64-mingw32\lib\libmsvcrt.a when searching for -lmsvcrt
C:\Users\Thomas\AppData\Local\Temp\ccZIOBl3.o: In function `Z10PrintHelloPv':
C:/Users/Thomas/Documents/c++/stuff/threads.cpp:31: undefined reference to `_imp__pthread_exit'
C:\Users\Thomas\AppData\Local\Temp\ccZIOBl3.o: In function `main':
C:/Users/Thomas/Documents/c++/stuff/threads.cpp:17: undefined reference to `_imp__pthread_create'
C:/Users/Thomas/Documents/c++/stuff/threads.cpp:23: undefined reference to `_imp__pthread_exit'
collect2: ld returned 1 exit status

Execution terminated

如有任何其他想法,我们将不胜感激。

最佳答案

改变:

rc = pthread_create(&threads[i], NULL, void * (*threadid *PrintHello));

到:

rc = pthread_create(&threads[i], NULL, PrintHello, NULL);

您还应该在 main 之前为 PrintHello 添加一个原型(prototype):

void *PrintHello(void *threadid);

关于c++ - 'void' 编译器 : TDM-GCC 4. 6.1 64 位之前的预期主表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15268105/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com