我正在尝试在ubuntu 14.04平台上的此位置构建源代码,
https://github.com/mpromonet/webrtc-streamer
请查看其自述文件,其中已编写了构建文件的步骤, 我遵循了相同的步骤,但是遇到链接错误,请查看下面的构建错误日志,
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(nack.o): In function `std::__1::vector<webrtc::rtcp::Nack::PackedNack, std::__1::allocator<webrtc::rtcp::Nack::PackedNack> >::__vallocate(unsigned long)':
./../../buildtools/third_party/libc++/trunk/include/vector:980: undefined reference to `std::__1::__vector_base_common<true>::__throw_length_error() const'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(nack.o): In function `std::__1::vector<webrtc::rtcp::Nack::PackedNack, std::__1::allocator<webrtc::rtcp::Nack::PackedNack> >::__recommend(unsigned long) const':
./../../buildtools/third_party/libc++/trunk/include/vector:1014: undefined reference to `std::__1::__vector_base_common<true>::__throw_length_error() const'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(receiver_report.o): In function `std::__1::vector<webrtc::rtcp::ReportBlock, std::__1::allocator<webrtc::rtcp::ReportBlock> >::__vallocate(unsigned long)':
./../../buildtools/third_party/libc++/trunk/include/vector:980: undefined reference to `std::__1::__vector_base_common<true>::__throw_length_error() const'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(sdes.o): In function `Parse':
./../../modules/rtp_rtcp/source/rtcp_packet/sdes.cc:119: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::assign(char const*, unsigned long)'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(sdes.o): In function `webrtc::rtcp::Sdes::Chunk::~Chunk()':
./../../modules/rtp_rtcp/source/rtcp_packet/sdes.h:25: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(sdes.o): In function `std::__1::vector<webrtc::rtcp::Sdes::Chunk, std::__1::allocator<webrtc::rtcp::Sdes::Chunk> >::__recommend(unsigned long) const':
./../../buildtools/third_party/libc++/trunk/include/vector:1014: undefined reference to `std::__1::__vector_base_common<true>::__throw_length_error() const'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(sdes.o): In function `webrtc::rtcp::Sdes::Chunk::Chunk(webrtc::rtcp::Sdes::Chunk const&)':
./../../modules/rtp_rtcp/source/rtcp_packet/sdes.h:25: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(target_bitrate.o): In function `std::__1::vector<webrtc::rtcp::TargetBitrate::BitrateItem, std::__1::allocator<webrtc::rtcp::TargetBitrate::BitrateItem> >::__vallocate(unsigned long)':
./../../buildtools/third_party/libc++/trunk/include/vector:980: undefined reference to `std::__1::__vector_base_common<true>::__throw_length_error() const'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(target_bitrate.o): In function `std::__1::vector<webrtc::rtcp::TargetBitrate::BitrateItem, std::__1::allocator<webrtc::rtcp::TargetBitrate::BitrateItem> >::__recommend(unsigned long) const':
./../../buildtools/third_party/libc++/trunk/include/vector:1014: undefined reference to `std::__1::__vector_base_common<true>::__throw_length_error() const'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(audio_multi_vector.o): In function `std::__1::vector<webrtc::AudioVector*, std::__1::allocator<webrtc::AudioVector*> >::__recommend(unsigned long) const':
./../../buildtools/third_party/libc++/trunk/include/vector:1014: undefined reference to `std::__1::__vector_base_common<true>::__throw_length_error() const'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(decoder_database.o): In function `webrtc::DecoderDatabase::DecoderInfo::DecoderInfo(webrtc::SdpAudioFormat const&, absl::optional<webrtc::AudioCodecPairId>, webrtc::AudioDecoderFactory*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)':
./../../modules/audio_coding/neteq/decoder_database.cc:42: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(decoder_database.o): In function `webrtc::DecoderDatabase::DecoderInfo::DecoderInfo(webrtc::DecoderDatabase::DecoderInfo&&)':
./../../modules/audio_coding/neteq/decoder_database.cc:55: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(decoder_database.o): In function `webrtc::DecoderDatabase::DecoderInfo::~DecoderInfo()':
./../../modules/audio_coding/neteq/decoder_database.cc:56: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(delay_manager.o): In function `GetDecelerationTargetLevelOffsetMs':
./../../modules/audio_coding/neteq/delay_manager.cc:118: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
./../../modules/audio_coding/neteq/delay_manager.cc:131: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(delay_manager.o): In function `GetDelayHistogramConfig':
./../../modules/audio_coding/neteq/delay_manager.cc:85: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
./../../modules/audio_coding/neteq/delay_manager.cc:106: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(delay_manager.o):./../../modules/audio_coding/neteq/delay_manager.cc:56: more undefined references to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()' follow
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(expand_uma_logger.o): In function `ExpandUmaLogger':
./../../modules/audio_coding/neteq/expand_uma_logger.cc:27: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(expand_uma_logger.o): In function `webrtc::ExpandUmaLogger::~ExpandUmaLogger()':
./../../modules/audio_coding/neteq/expand_uma_logger.cc:35: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(loss_based_bandwidth_estimation.o): In function `webrtc::LossBasedControlConfig::LossBasedControlConfig()':
./../../modules/bitrate_controller/loss_based_bandwidth_estimation.cc:78: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
./../../modules/bitrate_controller/loss_based_bandwidth_estimation.cc:79: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
./../../modules/bitrate_controller/loss_based_bandwidth_estimation.cc:80: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
./../../modules/bitrate_controller/loss_based_bandwidth_estimation.cc:81: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(loss_based_bandwidth_estimation.o):./../../modules/bitrate_controller/loss_based_bandwidth_estimation.cc:82: more undefined references to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()' follow
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(loss_based_bandwidth_estimation.o): In function `webrtc::LossBasedControlConfig::LossBasedControlConfig()':
./../../modules/bitrate_controller/loss_based_bandwidth_estimation.cc:101: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
./../../modules/bitrate_controller/loss_based_bandwidth_estimation.cc:94: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
./../../modules/bitrate_controller/loss_based_bandwidth_estimation.cc:102: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
/home/hashmak/WebRTC/webrtc/src/out/Debug/obj/libwebrtc.a(session_info.o): In function `std::__1::vector<webrtc::NaluInfo, std::__1::allocator<webrtc::NaluInfo> >::__recommend(unsigned long) const':
./../../buildtools/third_party/libc++/trunk/include/vector:1014: undefined reference to `std::__1::__vector_base_common<true>::__throw_length_error() const'
libwebrtcextra.a(json_reader.o): In function `Json::Reader::parse(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Json::Value&, bool)':
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:118: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
libwebrtcextra.a(json_reader.o): In function `Json::Reader::parse(char const*, char const*, Json::Value&, bool)':
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:177: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
libwebrtcextra.a(json_reader.o): In function `Json::Reader::parse(std::__1::basic_istream<char, std::__1::char_traits<char> >&, Json::Value&, bool)':
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:140: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
libwebrtcextra.a(json_reader.o): In function `Json::Reader::readValue()':
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:224: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
libwebrtcextra.a(json_reader.o): In function `Json::Reader::addError(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Json::Reader::Token&, char const*)':
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:787: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)'
libwebrtcextra.a(json_reader.o): In function `Json::Reader::readObject(Json::Reader::Token&)':
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:496: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:513: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:524: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:527: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
libwebrtcextra.a(json_reader.o): In function `Json::Reader::readArray(Json::Reader::Token&)':
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:562: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
libwebrtcextra.a(json_reader.o):./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:600: more undefined references to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()' follow
libwebrtcextra.a(json_reader.o): In function `Json::Reader::decodeString(Json::Reader::Token&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&)':
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:681: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::reserve(unsigned long)'
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:692: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:709: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
./../../third_party/jsoncpp/overrides/src/lib_json/json_reader.cpp:713: undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
我试图用不同的选项构建webrtc
gn gen out /默认--args ='use_custom_libcxx = false use_custom_libcxx_for_host = false'
但是问题仍然存在,我认为webrtc是使用clang编译器构建的,而我的代码是使用CC构建的,所以我可以传递给webrtc进行构建吗?
谢谢, 哈西尔