我正在尝试使用Windows 7上的Visual Studio 2013 64位构建Live555的组件。
我尝试过编辑win32config和* .mak文件但没有成功。我已经在互联网上搜索了几个小时,并在命令提示下尝试了各种各样的事情。
出于某种原因,VS2013 x64命令提示符仍在构建32位静态库,我无法弄清楚原因。
如果有人有任何好主意,那就太棒了!
答案 0 :(得分: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) $<
编辑完此文件后,从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命令提示符 然后确保将C_COMPILER设置为&#34; $(TOOLS32)\ bin \ amd64 \ cl&#34;将TOOLS32更正为VC / bin目录后。
答案 1 :(得分:1)
为了使用Visual Studio 2013编译64位本机代码,您需要专业版。
打开VS2013 x64 Native Tools命令提示符
然后确保在将TOOLS32更正为VC / bin目录后将C_COMPILER设置为“$(TOOLS32)\ bin \ amd64 \ cl”。