2013-05-08 71 views
0

上的makefile我剛剛發現所謂的三角形網格生成後,發現這裏http://www.cs.cmu.edu/~quake/triangle.html我怎麼編譯「三角」使用Windows機器

我有一些問題,建立這個使用使所提供的文件。當我通過命令提示符將makefile傳遞到視覺工作室時,出現錯誤

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. 

我不知道該如何調試。

回答

3

Eh?您是否閱讀makefile中的豐富評論?請從CSWITCHES刪除-DLINUX。不要試圖建立showme。使用gcc。

所以,用安裝了Cygwin(不要忘了使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. 
    ... 

容易,不是嗎?

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/

+0

我只是得到了很多編譯器錯誤 - 我一直在努力弄清楚這一點。我從文件中下載了源代碼並嘗試構建它,但它不起作用。爲什麼這些東西不能工作?每次我看到「編譯自己的」時,我都會在內心深處死去,因爲我知道那天晚上我會多花幾個小時試圖弄清楚我實際上應該做什麼。 – Prodigga 2013-05-08 12:33:46

+0

PS:對你沒有恨,謝謝指引我朝着正確的方向。我對這種情況感到沮喪!每當我手頭有一個源文件時,我都無法讓它「正常工作」。 – Prodigga 2013-05-08 12:34:29

+0

因爲您沒有使用基於UNIX的系統,所以它們不起作用。由於許多原因,免費/開源環境在這些類型的系統周圍興盛起來。大多數免費軟件都是在UNIX系統上編寫的,比如GNU/Linux,並且沒有考慮到Windows版本。這太奇怪了,不同,並且很難支持Windows。他們的C編譯器在上帝的份上甚至不符合C99標準!如果他們沒有得到報酬,誰有時間或精力處理?無論如何,這是MHO。 – MadScientist 2013-05-08 13:56:57

0

在windows上編譯這個會讓你頭痛......它不是可移植的。我想我在那裏看到了一些Linux Syscalls。

所以就像之前回答說的那樣,要麼安裝一個Linux發行版,要麼讓自己的MiniGW或CygWin - 我的個人最喜歡的。

+0

我有minigw(現在cygwin),不能讓他們任何一個工作。當我指向他們的make文件我得到編譯錯誤 – Prodigga 2013-05-08 13:31:00

+0

@Prodigga給我們一些輸出?這看起來不像makefile問題 – getack 2013-05-08 13:36:39

0

我同意getack在Windows上構建一般是頭痛的祕訣。但是triangle喬納森·理查德Shewchuk是(一個真棒),無依賴性單檔節目,所以在這種情況下,你的罰款:

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來設置Microsoft構建系統的環境。或者,SDK安裝一個Windows SDK 7.1命令提示符,其中運行SetEnv。詳情請參閱this page

0

傑努斯答案後工作一些工作。如果您在使用他編寫的bat文件時遇到問題,請打開SetEnv.cmd(在任何文件瀏覽器/ cmd中粘貼C:\ Program Files \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ SetEnv.cmd並回車)。然後使用「cd Path」導航到項目。輸入「cl/DNO_TIMER/DCPU86 triangle.c」。基本上它的bat文件是手動執行的。 (蝙蝠沒有爲我工作)

相關問題