使用 Visual Studio 2013 构建 64 位 Live555
Building 64bit Live555 with Visual Studio 2013
我正在尝试在 Windows 7.
上使用 Visual Studio 2013 64 位构建 Live555 的组件
我试过编辑 win32config 和 *.mak 文件但没有成功。我已经在互联网上搜索了几个小时,并尝试使用命令提示符进行各种操作。
出于某种原因,VS2013 x64 命令提示符仍在构建 32 位静态库,我不明白为什么。
如果有人有什么好主意,那就太好了!
为了使用 Visual Studio 2013 编译 64 位本机代码,您需要专业版。
打开 VS2013 x64 本机工具命令提示符
然后确保在将 TOOLS32 更正到 VC/bin 目录后将 C_COMPILER 设置为“$(TOOLS32)\bin\amd64\cl”。
您从 .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 的 genWindowsMakefiles 命令(或 CMD 文件)。接下来,启动 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 以获得调试版本。
In order to compile 64 bit native code with Visual Studio 2013, you
require professional edition.
打开 VS2013 x64 本机工具命令提示符
然后确保在将 TOOLS32 更正为 VC/bin 目录后将 C_COMPILER 设置为“$(TOOLS32)\bin\amd64\cl”。
我正在尝试在 Windows 7.
上使用 Visual Studio 2013 64 位构建 Live555 的组件我试过编辑 win32config 和 *.mak 文件但没有成功。我已经在互联网上搜索了几个小时,并尝试使用命令提示符进行各种操作。
出于某种原因,VS2013 x64 命令提示符仍在构建 32 位静态库,我不明白为什么。
如果有人有什么好主意,那就太好了!
为了使用 Visual Studio 2013 编译 64 位本机代码,您需要专业版。
打开 VS2013 x64 本机工具命令提示符
然后确保在将 TOOLS32 更正到 VC/bin 目录后将 C_COMPILER 设置为“$(TOOLS32)\bin\amd64\cl”。
您从 .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 的 genWindowsMakefiles 命令(或 CMD 文件)。接下来,启动 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 以获得调试版本。
In order to compile 64 bit native code with Visual Studio 2013, you require professional edition.
打开 VS2013 x64 本机工具命令提示符 然后确保在将 TOOLS32 更正为 VC/bin 目录后将 C_COMPILER 设置为“$(TOOLS32)\bin\amd64\cl”。