首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Makefile不产生预期的文件输出。

Makefile不产生预期的文件输出。
EN

Stack Overflow用户
提问于 2017-11-10 22:38:10
回答 1查看 306关注 0票数 0

我有下面的Makefile,我主要是从一个不同的Makefile复制并稍微调整一下。出于某种原因,它正在做一些非常奇怪的事情:

1)当我运行时,我没有得到可执行文件'execute‘,而是得到了a.out,这我不知道为什么。

2) --我不会再做‘制造:’一切‘没什么可做的。’当我背靠背时(这意味着没有什么改变,因此它不需要更新,因此在我看来,这就是Makefile的目的)。如果我能背靠背的话

代码语言:javascript
代码运行次数:0
运行
复制
    g++ stern_sim.o mag_cur_loop.o thetaddotMotion.o

我想这意味着它还在试图更新它。每次我以a.out而不是execute结束时,我再一次这样做。不管怎样,在这两个问题上有帮助是很好的。此外,所有缩进都使用选项卡,没有空格(我加倍和三次检查)。

代码语言:javascript
代码运行次数:0
运行
复制
CC= g++
CFLAGS= -c -Wall -lm -std=c++0x
SHELL:=/bin/bash

all: execute

execute: stern_sim.o mag_cur_loop.o thetaddotMotion.o
        $(CC) stern_sim.o mag_cur_loop.o thetaddotMotion.o

stern_sim.o: stern_sim.cpp
        $(CC) $(CFLAGS) stern_sim.cpp

mag_cur_loop.o: mag_cur_loop.cpp
        $(CC) $(CFLAGS) mag_cur_loop.cpp

thetaddotMotion.o: thetaddotMotion.cpp
        $(CC) $(CFLAGS) thetaddotMotion.cpp

clean:
        rm -rf *.o execute
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-10 22:43:16

由于历史原因,a.out是类unix平台上C和C++生成的可执行文件的默认名称。如果您想要调用可执行文件其他内容,则需要使用-o链接器选项:

代码语言:javascript
代码运行次数:0
运行
复制
$(CC) stern_sim.o mag_cur_loop.o thetaddotMotion.o -o execute

尽管我要说的是,对于可执行文件来说,execute可能是一个非常糟糕的名称。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47232197

复制
相关文章

相似问题

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