簡體   English   中英

從g ++修改make文件以使用Visual Studio C ++

[英]Modify make file from g++ to use Visual Studio C++

我正在嘗試使用應該在Windows環境中運行的Makefile (這是SVM火炬)。 源網站告知“根據您的特定平台,您只需要更改以下幾行”(普通副本)

在Vis中成為新手。 Studio C ++我不確定在這段代碼中我應該寫些什么來代替這些g ++:

 # C-compiler  
 CC=g++ 
 #CC=CC 
 # C-Compiler flags  
 CFLAGS=-Wall -W -O9 -funroll-all-loops -finline -ffast-math 
 #CFLAGS=-native -fast -xO5 
 # linker  
 LD=g++ 
 #LD=CC 
 # linker flags  
 LFLAGS=-Wall -W -O9 -funroll-all-loops -finline -ffast-math 
 #LFLAGS=-native -fast -xO5 
 # libraries  LIBS=-lm

我將Windows 7與Visual Studio 2010 Professional一起使用。

我了解我需要告訴要使用的編譯器,但是找不到替換g ++的正確

僅供參考:1.我正在輸入: nmake -f Makefile

如在Windows中預期的那樣,我收到以下錯誤:

"'g++' is not recognized as an internal or external command,
operable program or batch file.
NMAKE : fatal error U1077: 'g++' : return code '0x1'
Stop."
  1. 來源是這個網站

Makefile不適用於“本機” Windows工具鏈。 您不能使用nmake或Windows版本的make

通過查看Makefile可以看到這一點,我復制了一個片段:

37 clean:
38         rm -f *.o
39         rm -f SVMTorch
40         rm -f SVMTest
41         rm -f convert

rm在Windows中不是命令,因此即使您將Windows版本的make與常規命令提示符一起使用,也會失敗。

此外,該代碼包含* nix專用代碼。 例如在general.cc

33 long getRuntime(void)
34 {
35         struct tms buffer;
36         times(&buffer);
37         return((long)(buffer.tms_utime+buffer.tms_stime));
38 }

據我所知,這種類型的struct tms和function times()在Windows上不可用,因此如果使用MSVC編譯器( cl ),則無法編譯。

總而言之,您需要安裝諸如mingw類的東西,以提供類似於Unix的外殼和GNU編譯器套件以常規方式進行構建。

但是, Makefile非常簡單,因此我將嘗試創建一個MSVC項目,將所有源文件添加到其中,然后看看會發生什么。 由於Makefile包含三個可執行目標,因此(至少)您將必須創建三個項目才能使此工作生效,但是您可以從僅構建一個可執行文件開始,然后看您能走多遠。 不過,您必須解決* nix特定的代碼段。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM