【问题标题】:How to creat a C++ Makefile und use it如何创建 C++ Makefile 并使用它
【发布时间】:2017-08-20 10:37:37
【问题描述】:

我尝试在 win10 上用 Mingw 编写一个 c++ 程序,但我无法运行我的 Makefile,现在我尝试了一些我们的,我想我理解了大部分,但它仍然无法正常工作..

HashTabelleTest.o: main.o HashTabelle.o
    g++ -o HashTabelleTest main.o HashTabelle.o

main.o: main.cpp HashTabelle.cpp
    g++ -c main.o main.cpp

HashTabelle.o: HashTabelle.cpp HashTabelle.h
    g++ -c HashTabelle.o HashTabelle.cpp HashTabelle.h

clear:
    rm *.o *.exe

作为管理员,我使用 mingw32-make 但它所说的只是Nothing to be Done for 'Makefile.mak'

我尝试将零件编辑为新的,但仍然是相同的东西

【问题讨论】:

  • 您确定在规则操作之前使用了 TAB?
  • 是的,我使用 notpad++ 所以它会告诉我如果不是
  • 您应该考虑使用诸如 CMake 之类的构建工具套件并让它处理细节。
  • 如何调用Make(即使用什么命令)?这个makefile有几个错误,但是没有提到Makefile.mak,所以我怀疑这不是你使用的makefile。
  • 我使用 C:\Users\lp_ontour\Desktop\Cpp>mingw32-make Makefile.mak

标签: c++ makefile mingw


【解决方案1】:

据我所知,win有一点区别,比如没有rm,只有del。但你最好在两个系统中都写一个all:。在linux中,我总是使用以下格式

CC      =   g++
LD      =   g++
CFLAGS  =   -Wall -g -O0
LFLAGS  =   

all:main.elf

clean:
    rm -rf *.o *.elf

##########################
main.elf:main.o x.o y.o
    $(LD) -o $@ $^ $(LFLAGS)

%.o:%.cpp
    $(CC) -c -o $@ $< $(CFLAGS)

【讨论】:

  • 谢谢,我会试试这个,但可能需要一些时间来理解这个
  • 最重要的是你知道:$@是目标,$^是所有依赖,$
【解决方案2】:

我有:

Hashtabelletest: main.o Hashtabelle.o
    g++ -Wall -o Hashtabelletest main.o Hashtabelle.o

main.o: main.cpp Hashtabelle.h
    g++ -Wall -c main.cpp

Hashtabelle.o: Hashtabelle.cpp
    g++ -Wall -c Hashtabelle.cpp

1.问题是我必须将一个 libstdc++-6.dll 从 Mingw\bin 复制到我的工作文件夹中

2.事情是我必须输入mingw32-make -f Makefile.mak,而不是我的工作,@all 谢谢支持

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 2015-10-03
    • 1970-01-01
    • 2014-09-15
    • 2015-01-28
    • 1970-01-01
    相关资源
    最近更新 更多