如何在Windows机器上使用makefile编译“Triangle”

时间:2013-05-08 11:37:10

标签: makefile

我刚刚发现了一个名为triangle的网格生成器,可在此处找到http://www.cs.cmu.edu/~quake/triangle.html

我在使用提供的make文件构建此问题时遇到了一些问题。当我通过命令提示符将makefile传递给我的visual studio时,我收到了一个错误

Microsoft (R) Program Maintenance Utility Version 11.00.50727.1
Copyright (C) Microsoft Corporation.  All rights reserved.

NMAKE : fatal error U1073: don't know how to make './triangle.c'
Stop.

我不知道如何调试它。

5 个答案:

答案 0 :(得分:3)

嗯?您是否阅读了makefile中的大量评论?只需从-DLINUX移除CSWITCHES即可。不要试图建立showme。使用gcc。

所以,安装了cygwin(不要忘记 make gcc 包):

C> bash --login
$ vim makefile

删除-DLINUX,然后

$ make triangle
cc -O -I/usr/X11R6/include -L/usr/X11R6/lib -o ./triangle ./triangle.c -lm
$ make tricall
cc -O -I/usr/X11R6/include -L/usr/X11R6/lib -DTRILIBRARY -c -o ./triangle.o \
    ./triangle.c
cc -O -I/usr/X11R6/include -L/usr/X11R6/lib -o ./tricall ./tricall.c \
    ./triangle.o -lm
$ ./triangle.exe
triangle [-prq__a__uAcDjevngBPNEIOXzo_YS__iFlsCQVh] input_file
    -p  Triangulates a Planar Straight Line Graph (.poly file).
    -r  Refines a previously generated mesh.
    ...

容易,不是吗?

答案 1 :(得分:0)

这是一个makefile。 nmake实际上不是make程序,或者说明确,它不符合make的POSIX定义。它不能与此makefile一起使用。假设您不想找到基于POSIX的系统(GNU / Linux,Mac OSX,Solaris等)来使用它,您需要(a)手动编译它(它没有'看起来有太多文件)或(b)获取Windows系统的make副本。 Windows的GNU make有各种端口;可能最容易获得的是MinGW:http://sourceforge.net/projects/mingw/files/MinGW/Extension/make/make-3.82-mingw32/

答案 2 :(得分:0)

在Windows上编译这会让你的头疼......它不便携。我想我在那里看到了一些Linux Syscalls。

就像之前的回答所说的那样,要么安装Linux发行版,要么让自己获得MiniGW或CygWin - 我最喜欢的个人。

答案 3 :(得分:0)

我同意getack一般在Windows上构建令人头疼的问题。但Jonathan Richard Shewchuk的triangle是一个没有依赖关系的(一个很棒的)单文件程序,所以在这种情况下你很好:

1)安装microsoft SDK(命令行内容免费)。

2)然后在包含解压缩源文件的文件夹中创建以下文件build.bat

REM Compile Triangle using Microsoft C compiler
REM You must install the msvc SDK
REM Janus, 2013

"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd"
cl /DNO_TIMER /DCPU86 triangle.c

3)运行build.bat文件。这应该创建一个很好的triangle.exe

后台:需要调用C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd才能为微软构建系统设置环境。或者,SDK会安装 Windows SDK 7.1命令提示符,其中运行SetEnv。有关详细信息,请参阅this page

答案 4 :(得分:0)

Janus回答了一些工作后的工作。如果您在使用他编写的bat文件时遇到问题,请在任何文件浏览器/ cmd中打开SetEnv.cmd(粘贴C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ SetEnv.cmd并按Enter键)。然后使用" cd Path"导航到项目。比类型" cl / DNO_TIMER / DCPU86 triangle.c"。基本上它是手动执行的bat文件。 (蝙蝠对我不起作用)