首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用g++ -c和g++ -fopenmp生成文件

使用g++ -c和g++ -fopenmp生成文件
EN

Stack Overflow用户
提问于 2014-12-09 17:06:53
回答 2查看 908关注 0票数 0

我在mathobj.cpp中定义了一个对象,并在sum1.cppmultiple.cpp中定义了它的方法。此方法中的代码使用openmp

什么是与以下编译命令等效的makefile:

代码语言:javascript
运行
复制
g++ -c main.cpp mathobj.cpp -fopenmp sum1.cpp multiple.cpp
g++ -fopenmp main.o mathobj.o sum1.o multiple.o -o Test
EN

回答 2

Stack Overflow用户

发布于 2014-12-09 18:40:21

你可以参考下面的Makefile:

Makefile:

代码语言:javascript
运行
复制
SRCS = main.cpp \
        mathobj.cpp \
        sum.cpp \
        multiple.cpp

OBJS=$(SRCS:.cpp=.o )

.PHONY: all clean

all: test
test : $(OBJS)
[TAB] g++ -fopenmp $^ -o $@

%.o: %.cpp 
[TAB] g++ -fopenmp -c $< -o $@

clean:
[TAB] rm -rf *.o test
票数 2
EN

Stack Overflow用户

发布于 2014-12-09 21:54:06

我认为大多数人写的Makefiles都太长了。

如果您将main.cpp重命名为Test.cpp,您的任务将变得更容易。然后,您不必在Makefile中定义任何规则,但您可以使用隐式规则。

重命名之后,Makefile变得非常简单:

代码语言:javascript
运行
复制
CXXFLAGS = -fopenmp
Test: mathobj.o sum.o multiple.o

这就是你所需要的!

代码语言:javascript
运行
复制
$ make
g++ -fopenmp   -c -o mathobj.o mathobj.cpp
g++ -fopenmp   -c -o sum.o sum.cpp
g++ -fopenmp   -c -o multiple.o multiple.cpp
g++ -fopenmp    Test.cpp mathobj.o sum.o multiple.o   -o Test

但是,如果您愿意,您也可以跳过中间步骤,一次性编译所有内容(同样,这两行代码就是您在Makefile中所需的全部内容):

代码语言:javascript
运行
复制
CXXFLAGS = -fopenmp
Test: mathobj.cpp sum.cpp multiple.cpp

这将导致:

代码语言:javascript
运行
复制
$ make
g++ -fopenmp    Test.cpp mathobj.cpp sum.cpp multiple.cpp   -o Test
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27375004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档