将基本Makefile转换为Visual Studio

时间:2016-06-17 02:47:43

标签: visual-studio-2013 makefile

我正在尝试构建一些通常在Linux上运行的开源软件。作者提供了一个Makefile,它创建了一些在下游使用的对象文件(* .so)(在lua中)。我通常在Windows机器上的Visual Studio 2013中进行所有开发。任何人都可以指导我如何将看起来像一个非常基本的Makefile的内容翻译成Visual Studio项目。我在我的系统上安装了火炬,png ++和OpenCV(只是没有安装在Makefile中指定的排列中,如下所示)。我只需要弄清楚如何配置Visual Studio项目以指向我系统上的标头/库并创建指定的目标文件。这是Makefile:

PREFIX=$(HOME)/torch/install
CFLAGS=-I$(PREFIX)/include/THC -I$(PREFIX)/include/TH -I$(PREFIX)/include
LDFLAGS_NVCC=-L$(PREFIX)/lib -Xlinker -rpath,$(PREFIX)/lib -lluaT -lTHC -lTH -lpng
LDFLAGS_CPP=-L$(PREFIX)/lib -lluaT -lTH `pkg-config --libs opencv`

all: libadcensus.so libcv.so

libadcensus.so: adcensus.cu SpatialLogSoftMax.cu
    nvcc -arch sm_35 -O3 -DNDEBUG --compiler-options '-fPIC' -o libadcensus.so --shared adcensus.cu $(CFLAGS) $(LDFLAGS_NVCC)

libcv.so: cv.cpp
    g++ -fPIC -o libcv.so -shared cv.cpp $(CFLAGS) $(LDFLAGS_CPP)

clean:
    rm -f libadcensus.so libcv.so

1 个答案:

答案 0 :(得分:0)

  

我只需要弄清楚如何配置Visual Studio项目

你刚刚说了一口。您将必须了解Makefile的每一行,然后将该信息表达给VS. 可能最容易使用" makefile项目"在VS中,并将Makefile转换为 NMAKE CL.EXE 可用。如果您这样做,请将其文档标记为书签。

否则,您必须通过常用对话框将库路径等添加到VS项目中。

所有这些-l项都指的是您需要的库。 IIRC CL 识别语法。

在Windows上,您不需要:

-Xlinker -rpath,$(PREFIX)/lib

因为COFF格式没有RPATH。你也无法使用

`pkg-config --libs opencv`

生成opencv库作为链接器命令列表。您需要知道它们是什么,并明确包含它们。

我想你知道你的目标是DLL,而不是.so。

HTH。