我正在尝试构建一些通常在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
答案 0 :(得分:0)
你刚刚说了一口。您将必须了解Makefile的每一行,然后将该信息表达给VS. 可能最容易使用" makefile项目"在VS中,并将Makefile转换为 NMAKE 和 CL.EXE 可用。如果您这样做,请将其文档标记为书签。我只需要弄清楚如何配置Visual Studio项目
否则,您必须通过常用对话框将库路径等添加到VS项目中。
所有这些-l
项都指的是您需要的库。 IIRC CL 识别语法。
在Windows上,您不需要:
-Xlinker -rpath,$(PREFIX)/lib
因为COFF格式没有RPATH。你也无法使用
`pkg-config --libs opencv`
生成opencv
库作为链接器命令列表。您需要知道它们是什么,并明确包含它们。
我想你知道你的目标是DLL,而不是.so。
HTH。