Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用OpenMP生成文件:无法使用多个文件指定-o和-c、-S或-E_C++_C_Openmp - Fatal编程技术网

C++ 使用OpenMP生成文件:无法使用多个文件指定-o和-c、-S或-E

C++ 使用OpenMP生成文件:无法使用多个文件指定-o和-c、-S或-E,c++,c,openmp,C++,C,Openmp,我的makefile中包含OpenMP并行计算时出现问题。我犯的错误是 无法为多个文件指定-o和-c、-S或-E 这是我的makefile: GSLFLAGS := pkg-config --cflags gsl LIBGSL := pkg-config --libs gsl CFLAGS = -c -C -O3 -openmp=parallel lateral.o:lateral.cxx g++ -c lateral.cxx main.o:main.cxx g++

我的makefile中包含OpenMP并行计算时出现问题。我犯的错误是

无法为多个文件指定-o和-c、-S或-E

这是我的makefile:

GSLFLAGS := pkg-config --cflags gsl
LIBGSL := pkg-config --libs gsl

CFLAGS = -c -C -O3 -openmp=parallel

lateral.o:lateral.cxx

    g++ -c lateral.cxx 

main.o:main.cxx 

    g++ -c main.cxx  $< ${GSLFLAGS} ${CFLAGS}

alg:main.o lateral.o

    g++ -o  $@ $^ ${LIBGSL}
GSLFLAGS:=pkg-config--cflags-gsl
LIBGSL:=pkg config--libs gsl
CFLAGS=-c-c-O3-openmp=并行
横向.o:lateral.cxx
g++-c.cxx
main.o:main.cxx
g++-c main.cxx$<${GSLFLAGS}${CFLAGS}
alg:main.o侧向
g++-o$@$^${LIBGSL}
线路

g++ -c main.cxx $< ${GSLFLAGS} ${CFLAGS}
因为,
$行

g++ -c main.cxx $< ${GSLFLAGS} ${CFLAGS}
因为,
$IMO(但现在无法测试)这行代码有问题:

CFLAGS = -c -C -O3 -openmp=parallel
我认为
-openmp=parallel
应该是
-fopenmp
。首先是因为这是OpenMP的正确编译标志,其次是因为
-o
之后的内容将被解释为输出文件的名称。正如您的错误消息所说,您不能同时使用
-c
-o

IMO(但现在无法测试)此行有问题:

CFLAGS = -c -C -O3 -openmp=parallel

我认为
-openmp=parallel
应该是
-fopenmp
。首先是因为这是OpenMP的正确编译标志,其次是因为
-o
之后的内容将被解释为输出文件的名称。正如您的错误消息所说,您不能同时使用
-c
-o

您好,谢谢,但是删除$CFLAGS = -c -C -O3 -openmp=parallel
CFLAGS = -c -C -O3 -openmp=parallel