使用Visual Studio 2013构建64位Live555

Chr*_*000 2 live555 visual-studio-2013

我试图在Windows 7上使用Visual Studio 2013 64位构建Live555的组件.

我已经尝试编辑win32config和*.mak文件但没有成功.我一直在互联网上搜索几个小时,并通过命令提示尝试各种各样的事情.

由于某种原因,VS2013 x64命令提示符仍在构建32位静态库,我无法弄清楚原因.

如果有人有任何好主意,那就太棒了!

小智 7

从.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) $<
Run Code Online (Sandbox Code Playgroud)

编辑完此文件后,从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
Run Code Online (Sandbox Code Playgroud)

更改第一个命令以匹配放置源的目录.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".