1. 编译:https://sourcey.com/precompiled-webrtc-libraries/
gn gen out/x86/Debug--args="is_debug=true rtc_include_tests=false target_cpu=\"x86\""
gn gen out/x86/Release--args="is_debug=false rtc_include_tests=false target_cpu=\"x86\" symbol_level=0 enable_nacl=false"
gn gen out/x64/Debug--args="is_debug=true rtc_include_tests=false target_cpu=\"x64\""
gn gen out/x64/Release--args="is_debug=false rtc_include_tests=false target_cpu=\"x64\" symbol_level=0 enable_nacl=false"
ninja -C out/x64/Debug
注:如果加--ide=vs2015,使用vs编译peerconnect_client,不会有webrtc.lib,需要使用ninja全部编译
2. ninja文件位置:webrtcsrc\out\x64\Debug\obj\webrtc\examples\peerconnection_client.ninja
3. 宏定义
WIN32
NOMINMAX
WEBRTC_WIN
4. 头文件
在ninja文件中的【include_dirs =】
5. 依赖库
查看ninja文件:
将ninja的.lib全部拷出来,都是依赖库
外加webrtc_common.lib、webrtc.lib、json.obj、json_reader.obj、json_value.obj、json_writer.obj
#include "stdafx.h"
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "winmm.lib")
#pragma comment(lib, "secur32.lib")
#pragma comment(lib, "iphlpapi.lib")
#pragma comment(lib, "crypt32.lib")
#pragma comment(lib, "dmoguids.lib")
#pragma comment(lib, "wmcodecdspuuid.lib")
#pragma comment(lib, "amstrmid.lib")
#pragma comment(lib, "msdmo.lib")
#pragma comment(lib, "d3d11.lib")
#pragma comment(lib, "dxgi.lib")
#pragma comment(lib, "Strmiids.lib")
#pragma comment(lib, "obj/third_party/boringssl/boringssl.lib")
#pragma comment(lib, "obj/third_party/boringssl/boringssl_asm.lib")
#pragma comment(lib, "obj/third_party/libjpeg_turbo/libjpeg.lib")
#pragma comment(lib, "obj/third_party/libjpeg_turbo/simd.lib")
#pragma comment(lib, "obj/third_party/libjpeg_turbo/simd_asm.lib")
#pragma comment(lib, "obj/third_party/libsrtp/libsrtp.lib")
#pragma comment(lib, "obj/third_party/libvpx/libvpx.lib")
#pragma comment(lib, "obj/third_party/libvpx/libvpx_yasm.lib")
#pragma comment(lib, "obj/third_party/libyuv/libyuv_internal.lib")
#pragma comment(lib, "obj/third_party/openmax_dl/dl/dl.lib")
#pragma comment(lib, "obj/third_party/opus/opus.lib")
#pragma comment(lib, "obj/third_party/protobuf/protobuf_lite.lib")
#pragma comment(lib, "obj/third_party/usrsctp/usrsctp.lib")
#pragma comment(lib, "obj/third_party/winsdk_samples/winsdk_samples.lib")
#pragma comment(lib, "obj/webrtc/api/audio_codecs/builtin_audio_decoder_factory.lib")
#pragma comment(lib, "obj/webrtc/api/audio_codecs/builtin_audio_encoder_factory.lib")
#pragma comment(lib, "obj/webrtc/api/audio_codecs/opus/audio_encoder_opus_config.lib")
#pragma comment(lib, "obj/webrtc/api/libjingle_peerconnection_api.lib")
#pragma comment(lib, "obj/webrtc/audio/audio.lib")
#pragma comment(lib, "obj/webrtc/audio/utility/audio_frame_operations.lib")
#pragma comment(lib, "obj/webrtc/call/call.lib")
#pragma comment(lib, "obj/webrtc/common_audio/common_audio.lib")
#pragma comment(lib, "obj/webrtc/common_audio/common_audio_sse2.lib")
#pragma comment(lib, "obj/webrtc/common_video/common_video.lib")
#pragma comment(lib, "obj/webrtc/logging/rtc_event_log_impl.lib")
#pragma comment(lib, "obj/webrtc/logging/rtc_event_log_proto.lib")
#pragma comment(lib, "obj/webrtc/media/rtc_audio_video.lib")
#pragma comment(lib, "obj/webrtc/media/rtc_data.lib")
#pragma comment(lib, "obj/webrtc/media/rtc_media_base.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/ana_config_proto.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/ana_debug_dump_proto.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/audio_coding.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/audio_format_conversion.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/audio_network_adaptor.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/builtin_audio_decoder_factory_internal.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/builtin_audio_encoder_factory_internal.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/cng.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/g711.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/g722.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/ilbc.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/isac.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/isac_c.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/isac_common.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/isac_fix.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/legacy_encoded_audio_frame.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/neteq.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/pcm16b.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/red.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/rent_a_codec.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_coding/webrtc_opus.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_conference_mixer/audio_conference_mixer.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_device/audio_device.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_mixer/audio_frame_manipulator.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_mixer/audio_mixer_impl.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_processing/audio_processing.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_processing/audio_processing_sse2.lib")
#pragma comment(lib, "obj/webrtc/modules/audio_processing/audioproc_debug_proto.lib")
#pragma comment(lib, "obj/webrtc/modules/bitrate_controller/bitrate_controller.lib")
#pragma comment(lib, "obj/webrtc/modules/congestion_controller/congestion_controller.lib")
#pragma comment(lib, "obj/webrtc/modules/media_file/media_file.lib")
#pragma comment(lib, "obj/webrtc/modules/pacing/pacing.lib")
#pragma comment(lib, "obj/webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimator.lib")
#pragma comment(lib, "obj/webrtc/modules/rtp_rtcp/rtp_rtcp.lib")
#pragma comment(lib, "obj/webrtc/modules/utility/utility.lib")
#pragma comment(lib, "obj/webrtc/modules/video_capture/video_capture_internal_impl.lib")
#pragma comment(lib, "obj/webrtc/modules/video_capture/video_capture_module.lib")
#pragma comment(lib, "obj/webrtc/modules/video_coding/video_coding.lib")
#pragma comment(lib, "obj/webrtc/modules/video_coding/video_coding_utility.lib")
#pragma comment(lib, "obj/webrtc/modules/video_coding/webrtc_h264.lib")
#pragma comment(lib, "obj/webrtc/modules/video_coding/webrtc_i420.lib")
#pragma comment(lib, "obj/webrtc/modules/video_coding/webrtc_vp8.lib")
#pragma comment(lib, "obj/webrtc/modules/video_coding/webrtc_vp9.lib")
#pragma comment(lib, "obj/webrtc/modules/video_processing/video_processing.lib")
#pragma comment(lib, "obj/webrtc/modules/video_processing/video_processing_sse2.lib")
#pragma comment(lib, "obj/webrtc/p2p/libstunprober.lib")
#pragma comment(lib, "obj/webrtc/p2p/rtc_p2p.lib")
#pragma comment(lib, "obj/webrtc/pc/create_pc_factory.lib")
#pragma comment(lib, "obj/webrtc/pc/peerconnection.lib")
#pragma comment(lib, "obj/webrtc/pc/rtc_pc_base.lib")
#pragma comment(lib, "obj/webrtc/rtc_base/rtc_base.lib")
#pragma comment(lib, "obj/webrtc/rtc_base/rtc_base_approved.lib")
#pragma comment(lib, "obj/webrtc/rtc_base/rtc_numerics.lib")
#pragma comment(lib, "obj/webrtc/rtc_base/rtc_task_queue.lib")
#pragma comment(lib, "obj/webrtc/rtc_base/sequenced_task_checker.lib")
#pragma comment(lib, "obj/webrtc/rtc_base/weak_ptr.lib")
#pragma comment(lib, "obj/webrtc/stats/rtc_stats.lib")
#pragma comment(lib, "obj/webrtc/system_wrappers/field_trial_default.lib")
#pragma comment(lib, "obj/webrtc/system_wrappers/metrics_default.lib")
#pragma comment(lib, "obj/webrtc/system_wrappers/system_wrappers.lib")
#pragma comment(lib, "obj/webrtc/video/video.lib")
#pragma comment(lib, "obj/webrtc/voice_engine/audio_coder.lib")
#pragma comment(lib, "obj/webrtc/voice_engine/audio_level.lib")
#pragma comment(lib, "obj/webrtc/voice_engine/file_player.lib")
#pragma comment(lib, "obj/webrtc/voice_engine/file_recorder.lib")
#pragma comment(lib, "obj/webrtc/voice_engine/voice_engine.lib")
#pragma comment(lib, "obj/webrtc/webrtc.lib")
#pragma comment(lib, "obj/webrtc/webrtc_common.lib")