【问题标题】:Translate basic Makefile to Visual Studio将基本 Makefile 转换为 Visual Studio
【发布时间】:2016-06-24 03:47:18
【问题描述】:

我正在尝试构建一些通常在 Linux 上运行的开源软件。作者提供了一个 Makefile,它创建了一些在下游(在 lua 中)使用的目标文件(*.so)。我通常在 Windows 机器上使用 Visual Studio 2013 进行所有开发。任何人都可以指导我如何将看起来非常基本的 Makefile 转换为 Visual Studio 项目。我的系统上安装了 torch、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

【问题讨论】:

    标签: visual-studio-2013 makefile


    【解决方案1】:

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

    你刚才说了一大口。您将必须了解 Makefile 的每一行,然后将该信息表达给 VS。 可能在 VS 中使用“makefile 项目”是最简单的,并将 Makefile 转换为可供 NMAKECL.EXE 使用。如果您这样做,请将他们的文档保存为书签。

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

    所有-l 项目均指您需要的库。 IIRC CL 识别该语法。

    在 Windows 上,您不需要:

    -Xlinker -rpath,$(PREFIX)/lib
    

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

    `pkg-config --libs opencv`
    

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

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

    HTH。

    【讨论】:

    • 詹姆斯,感谢您的提示。根据您的建议(以及在stackoverflow.com/questions/15061381/… 上发布的答案),我将继续在 Visual Studio 中创建一个 DLL 项目。我认为我的系统上有所有指定的库。但是我在阅读 Makefile 方面相当缺乏经验。是否有在线资源可以帮助我解释上述文件的每一行?
    猜你喜欢
    • 2010-09-14
    • 1970-01-01
    • 2012-01-19
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多