【问题标题】:Building 64bit Live555 with Visual Studio 2013使用 Visual Studio 2013 构建 64 位 Live555
【发布时间】:2015-03-13 20:21:07
【问题描述】:

我正在尝试在 Windows 7 上使用 Visual Studio 2013 64bit 构建 Live555 的组件。

我尝试编辑 win32config 和 *.mak 文件,但没有成功。我已经在互联网上搜索了几个小时,并尝试使用命令提示符进行各种操作。

出于某种原因,VS2013 x64 命令提示符仍在构建 32 位静态库,我不知道为什么。

如果有人有什么好主意,那就太好了!

【问题讨论】:

    标签: visual-studio-2013 live555


    【解决方案1】:

    您从 .tar.gz 文件中获取的 win32config 文件需要大量编辑以使其与最新的 SDK 和 MSVC++ 版本兼容。这是一个产生干净构建的版本:

    NODEBUG=1
    TARGETOS = WINNT
    
    UI_OPTS =       $(guilflags) $(guilibsdll)
    CONSOLE_UI_OPTS =   $(conlflags) $(conlibsdll)
    CPU=amd64
    
    COMPILE_OPTS =      $(INCLUDES) $(cdebug) $(cflags) $(cvarsdll) -I. /EHsc /O2 /MD /GS /D "WIN64" /Oy- /Oi /D "NDEBUG"
    C =         c
    C_COMPILER =        cl
    C_FLAGS =       $(COMPILE_OPTS)
    CPP =           cpp
    CPLUSPLUS_COMPILER =    $(C_COMPILER)
    CPLUSPLUS_FLAGS =   $(COMPILE_OPTS)
    OBJ =           obj
    LINK =              link -out:
    LIBRARY_LINK =      lib -out:
    LINK_OPTS_0 =       $(linkdebug) ws2_32.lib /NXCOMPAT
    LIBRARY_LINK_OPTS = 
    LINK_OPTS =     $(LINK_OPTS_0) $(UI_OPTS)
    CONSOLE_LINK_OPTS = $(LINK_OPTS_0) $(CONSOLE_UI_OPTS)
    SERVICE_LINK_OPTS =     kernel32.lib advapi32.lib shell32.lib ws2_32.lib -subsystem:console,$(APPVER)
    LIB_SUFFIX =        lib
    LIBS_FOR_CONSOLE_APPLICATION =
    LIBS_FOR_GUI_APPLICATION =
    MULTIMEDIA_LIBS =   winmm.lib
    EXE =           .exe
    PLATFORM = Windows
    
    rc32 = rc.exe
    .rc.res:
        $(rc32) $<
    

    编辑此文件后,从 bash(或 CMD 文件)运行 genWindowsMakefiles 命令。接下来,启动 x64 Visual Studio 命令提示符。确保您获得了它的 x64 本机配置风格。发出以下命令:

    cd c:\projects\live\liveMedia
    nmake -f liveMedia.mak
    cd ..\groupsock
    nmake -f groupsock.mak
    cd ..\UsageEnvironment
    nmake -f UsageEnvironment.mak
    cd ..\BasicUsageEnvironment
    nmake -f BasicUsageEnvironment.mak
    cd ..\testProgs
    nmake -f testProgs.mak
    cd ..\mediaServer
    nmake -f mediaServer.mak
    

    更改第一个命令以匹配您放置源的目录。 TODO 项目:清理不起作用,它尝试使用 *nix rf 命令。最简单的解决方法是 del *.obj 强制编译器重建目标文件 .exe 文件是在没有清单的情况下构建的。对测试程序无关紧要,我假设您只对 .lib 文件感兴趣 它构建了库和可执行文件的发布版本,您必须调整 COMPILE_OPTS 才能获得调试版本。

    为了使用 Visual Studio 2013 编译 64 位本机代码,您 需要专业版。

    打开 VS2013 x64 Native Tools 命令提示符 然后确保在将 TOOLS32 更正为 VC/bin 目录后将 C_COMPILER 设置为 "$(TOOLS32)\bin\amd64\cl"。

    【讨论】:

    • 当调用 nmake -f testProgs.mak 时,是否有其他人得到 NMAKE:致命错误 U1077:'-out:testMP3Streamer.exe':返回代码 '0x1'?
    【解决方案2】:

    要使用 Visual Studio 2013 编译 64 位本机代码,您需要专业版。

    打开 VS2013 x64 Native Tools 命令提示符

    然后确保在将 TOOLS32 更正到 VC/bin 目录后将 C_COMPILER 设置为“$(TOOLS32)\bin\amd64\cl”。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-23
    • 2015-12-29
    • 1970-01-01
    • 2023-04-05
    • 2013-11-26
    • 2019-02-05
    相关资源
    最近更新 更多