pristineio / webrtc-build-scripts

A set of build scripts useful for building WebRTC libraries for Android and iOS.
BSD 3-Clause "New" or "Revised" License
1.13k stars 447 forks source link

Current OSX builds don't contain required symbols #166

Open zero1zero opened 8 years ago

zero1zero commented 8 years ago

Sometime after ~version 11142 onwards, the OSX builds are throwing this linker error:

`Undefined symbols for architecture x86_64:

"_OBJC_CLASS_$_RTCDataBuffer", referenced from:

  objc-class-ref in libShared.a(DataChannel.o)

"_OBJC_CLASS_$_RTCDataChannelInit", referenced from:

  objc-class-ref in libShared.a(DataChannel.o)

"_OBJC_CLASS_$_RTCICECandidate", referenced from:

  objc-class-ref in libShared.a(DeviceTunnel.o)

"_OBJC_CLASS_$_RTCICEServer", referenced from:

  objc-class-ref in libShared.a(DeviceTunnel.o)

"_OBJC_CLASS_$_RTCMediaConstraints", referenced from:

  objc-class-ref in libShared.a(DeviceTunnel.o)

"_OBJC_CLASS_$_RTCPair", referenced from:

  objc-class-ref in libShared.a(DeviceTunnel.o)

"_OBJC_CLASS_$_RTCPeerConnectionFactory", referenced from:

  objc-class-ref in AppDelegate.o

  objc-class-ref in libShared.a(SharedAssembly.o)

"_OBJC_CLASS_$_RTCSessionDescription", referenced from:

  objc-class-ref in libShared.a(DeviceTunnel.o)

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)`

This is using build 11177.2.0. We also noticed that the library size shrunk from 24m to ~5mb. I've been trying to step through the commits that might have effected this but have been unsuccessful. Anyone have an idea?

Much thanks to @adamwulf for finding the version where the discrepancy was.

zero1zero commented 8 years ago

@thebehera could it possibly have been your commit here: https://github.com/pristineio/webrtc-build-scripts/commit/8c99f36489e58a4e852cd5860721ce2bb986dd1b

schrockwell commented 8 years ago

I'm seeing this as well. The last working version of the OS X libjingle_peerconnection CocoaPod is 11122.2.0. The versions from 11146.0.0 onward are missing the OS X symbols.

zero1zero commented 8 years ago

I ended up having to build by hand and link directly instead of using cocoapods :/

schrockwell commented 8 years ago

@zero1zero Did you have to use an older revision of the build scripts to accomplish this, or were you able to use HEAD?

zero1zero commented 8 years ago

I was able to just use HEAD if I recall correctly.

pavelshadrin commented 8 years ago

Experiencing the same issue (but everything works with version 11122.2.0).

schrockwell commented 8 years ago

I was able to compile from source on my own machine using the build scripts and the latest available version (v12566), and the OS X symbols are there and it works great. So, it's not clear to me whether (a) this has been fixed outright, or (b) the issue is localized to the build machine that is uploading the CocoaPods binaries.

zero1zero commented 8 years ago

I think that @thebehera can probably provide the definitive answer when he has the time.

shantanu123 commented 8 years ago

I am facing same linker error. I had taken a sync (version 12673). I added new library to sample app of webrtc AppRTCDemo. Please see the attached screenshot of linker error that I am facing screen shot 2016-05-20 at 3 14 21 pm

meetakshay99 commented 8 years ago

@shantanu123 Did you find a solution? I am also stucked on this issue.