c++ - 如何从命令行 (Windows 7) 编译和运行项目?

标签 c++ windows linux command-line makefile

我有一个包含 makefile 的项目:

# a simple makefile

# Uncomment, if compression support is desired
#DCOMP=-DWITH_COMPRESSION
#ZLIB=-lz

#Compiler
CC=g++
# compiler switches
#CPPFLAGS=-g -I.
CPPFLAGS=-O -I.
CFLAGS=-O -I. $(DCOMP) 

#LDFLAGS=-L/usr/local/lib
#libraries
LIBS= -lm $(ZLIB)

# Compilation rules
# target:source
%.o:%.c
    $(CC) $(CFLAGS) -o $@ -c $<
%.o:%.cpp
    $(CC) $(CPPFLAGS) -o $@ -c $<
# $@-target, $<-source

DNAME=f3dProjBasicNoComp12
PROGRAM=project

PROJ_OBJECTS= project.o f3d.o f3dGridLite.o

#the first (default)
all:$(PROGRAM)

project:$(PROJ_OBJECTS)
    $(CC) $(LDFLAGS) -o $@ $(PROJ_OBJECTS) $(LIBS)

clean:
    rm -f $(PROGRAM) *.o  core* *.ppm

pack:
    make clean
    (cd .. && tar cvzf $(DNAME).tgz $(DNAME))

我想在 Windows 上运行它。教授说我应该编译运行,但他没有告诉我如何在 Windows 上执行此操作。我读过我应该使用 nmake MakeFile,但是:

'nmake' is not recognized as an internal or external command,
operable program or batch file.

要运行该应用程序,我应该使用类似于 project -x somethink.obj 的东西。 但是因为我无法编译 makefile,所以我无法运行该项目。

你能帮帮我吗?

最佳答案

如果您的项目配置为使用 gcc/g++(如您的示例所示),那么您应该安装 mingw .之后启动 mingw shell,转到目录并键入 make (前提是你在安装mingw的时候安装了make)或者make -f <makefile name> .

注意: c:\mydir1\mydir2 的窗口路径在 mingw /c/mydir1/mydir2 .因此,您应该通过键入 cd /c/mydir1/mydir2 来访问您的目录。 .

如果您的项目配置为使用 Visual Studio(cl.exe 编译器),您可以:

  1. 启动 Visual Studio 控制台
  2. 启动 cmd.exe 提示符,然后运行 ​​"c:\Program Files\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat" (或您对应的 vcvars32.bat )

完成此操作后,您可以使用 cd c:\mydir1\mydir2 转到您的目录然后输入 nmake (来自 visual studio 包的 make 等效项)或 nmake /f <your makefile name> .

如果您需要其他工具链进行编译,那么您应该遵循特定的步骤。我记得要使用 Borland 编译器,您只需要将路径设置为 bcc32可执行文件。

后期编辑:

如果项目使用 unix 特定程序,您应该使用 cygwin (如评论中所述)。

关于c++ - 如何从命令行 (Windows 7) 编译和运行项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8411972/

相关文章:

c++ - 创建静态链接所有依赖项的共享 .so 库

c - 用于套接字 SSL 的 Windows API

c++ - FileObject->FileName 不返回文件的完整路径

java - 写入 HID 键盘适用于 Linux 但不适用于 Windows

c - 在linux系统上顺序打开和读取多个文件

c++ - 自动类型默认为 int 而不是 long

c++ - 如何判断三角形网格是否凹陷?

linux - Sed 错误 "sed: unmatched '/'"

c - 在 Linux 中从 C 显式打开 stdout

c++ - 将文件中的数字读入数组