How to include a third party binary in Xcode? - objective-c

I am learning code here - a video player on Mac OS X depends on MPlayerX:
https://bitbucket.org/Tomasen/splayerx/src/
Have something confused with binary including in Xcode:
https://bitbucket.org/Tomasen/splayerx/src/a97f03511dfc/binaries/x86_64
there is a binary called mplayer-mt(not .a file, it's exectuable)
How is the binary used in Xcode? How to import it or how to config?
Here is my build fail info:
Ld /Users/tsung/Library/Developer/Xcode/DerivedData/loss-fqhksenkliuhradvuyhbrddeakha/Build/Products/Debug/loss.app/Contents/MacOS/loss normal x86_64
cd /Users/tsung/works/mac/loss
setenv MACOSX_DEPLOYMENT_TARGET 10.8
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -L/Users/tsung/Library/Developer/Xcode/DerivedData/loss-fqhksenkliuhradvuyhbrddeakha/Build/Products/Debug -L/Users/tsung/works/mac/loss/binaries/x86_64/lib -F/Users/tsung/Library/Developer/Xcode/DerivedData/loss-fqhksenkliuhradvuyhbrddeakha/Build/Products/Debug -filelist /Users/tsung/Library/Developer/Xcode/DerivedData/loss-fqhksenkliuhradvuyhbrddeakha/Build/Intermediates/loss.build/Debug/loss.build/Objects-normal/x86_64/loss.LinkFileList -mmacosx-version-min=10.8 -fobjc-link-runtime -framework Cocoa -o /Users/tsung/Library/Developer/Xcode/DerivedData/loss-fqhksenkliuhradvuyhbrddeakha/Build/Products/Debug/loss.app/Contents/MacOS/loss
Undefined symbols for architecture x86_64:
"_MPLog", referenced from:
-[PlayerController playMedia:] in PlayerController.o
-[PlayerController playebackStarted] in PlayerController.o
"_OBJC_CLASS_$_CoreController", referenced from:
objc-class-ref in PlayerController.o
"_OBJC_CLASS_$_PlayList", referenced from:
objc-class-ref in PlayerController.o
"_OBJC_CLASS_$_StoreHandler", referenced from:
objc-class-ref in OSDView.o
"_OBJC_CLASS_$_ssclThread", referenced from:
objc-class-ref in PlayerController.o
"_kI386Key", referenced from:
-[PlayerController setMultiThreadMode:] in PlayerController.o
"_kKVOPropertyKeyPathAudioDelay", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kKVOPropertyKeyPathAudioInfo", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kKVOPropertyKeyPathAudioInfoID", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kKVOPropertyKeyPathCachingPercent", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kKVOPropertyKeyPathCurrentTime", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kKVOPropertyKeyPathLength", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kKVOPropertyKeyPathSeekable", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kKVOPropertyKeyPathSpeed", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kKVOPropertyKeyPathSubDelay", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kKVOPropertyKeyPathSubInfo", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kKVOPropertyKeyPathSubScale", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kKVOPropertyKeyPathVideoInfo", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kKVOPropertyKeyPathVideoInfoID", referenced from:
-[PlayerController setupKVO] in PlayerController.o
-[PlayerController dealloc] in PlayerController.o
"_kMPCPlayStoppedByForceKey", referenced from:
-[PlayerController playebackStopped:] in PlayerController.o
"_kMPCPlayStoppedTimeKey", referenced from:
-[PlayerController playebackStopped:] in PlayerController.o
"_kMPCStringMPlayerX", referenced from:
-[PlayerController init] in PlayerController.o
"_kPMValDemuxFFMpeg", referenced from:
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyAC3PassThrough", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyAPNFuzzy", referenced from:
+[PlayerController initialize] in PlayerController.o
"_kUDKeyAutoPlayNext", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playebackStopped:] in PlayerController.o
"_kUDKeyAutoResume", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyCacheSize", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyCachingLocal", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyDTSPassThrough", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyEnableMultiThread", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController init] in PlayerController.o
"_kUDKeyFFMpegHandleStream", referenced from:
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyForceIndex", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyLetterBoxHeight", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyLetterBoxMode", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyLetterBoxModeAlt", referenced from:
+[PlayerController initialize] in PlayerController.o
"_kUDKeyMixToStereoMode", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyOSDAutoHideTime", referenced from:
+[OSDView initialize] in OSDView.o
-[OSDView initWithFrame:] in OSDView.o
"_kUDKeyOSDFontSizeMax", referenced from:
+[OSDView initialize] in OSDView.o
-[OSDView setStringValue:type:updateTimer:] in OSDView.o
"_kUDKeyOSDFontSizeMin", referenced from:
+[OSDView initialize] in OSDView.o
-[OSDView setStringValue:type:updateTimer:] in OSDView.o
"_kUDKeyOSDFrontColor", referenced from:
+[OSDView initialize] in OSDView.o
-[OSDView initWithFrame:] in OSDView.o
"_kUDKeyOverlapSub", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyPlayWhenOpened", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
-[PlayerController playebackStopped:] in PlayerController.o
"_kUDKeyPrefer64bitMPlayer", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController shouldRun64bitMPlayer] in PlayerController.o
"_kUDKeyPreferIPV6", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeyRtspOverHttp", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeySmartSubMatching", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
-[PlayerController playebackStarted] in PlayerController.o
"_kUDKeySubFileNameRule", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
-[PlayerController findFirstMediaFileFromSubFile:] in PlayerController.o
"_kUDKeySubFontBorderColor", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeySubFontColor", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kUDKeySubFontPath", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController init] in PlayerController.o
"_kUDKeySubScale", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
-[PlayerController changeSubScaleBy:] in PlayerController.o
-[PlayerController setSubScale:] in PlayerController.o
"_kUDKeySubScaleStepValue", referenced from:
+[PlayerController initialize] in PlayerController.o
"_kUDKeyTextSubtitleCharsetConfidenceThresh", referenced from:
-[PlayerController subConverter:detectedFile:ofCharsetName:confidence:] in PlayerController.o
"_kUDKeyTextSubtitleCharsetFallback", referenced from:
-[PlayerController subConverter:detectedFile:ofCharsetName:confidence:] in PlayerController.o
"_kUDKeyTextSubtitleCharsetManual", referenced from:
-[PlayerController subConverter:detectedFile:ofCharsetName:confidence:] in PlayerController.o
"_kUDKeyThreadNum", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController setMultiThreadMode:] in PlayerController.o
"_kUDKeyUseEmbeddedFonts", referenced from:
+[PlayerController initialize] in PlayerController.o
-[PlayerController playMedia:] in PlayerController.o
"_kX86_64Key", referenced from:
-[PlayerController setMultiThreadMode:] in PlayerController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Your linker has failed, and linkers do not have anything to do with files that are directly executable outside of XCode. At least as far as I know.
Instead have you tried to include the .dylib files from your library in your xcode build? Download them locally and then use the "Link Binary With Libraries" section of the "Build Phases" tab to add them to your current project, using the plus button.
If you haven't done this before, you have to click on your target in the left hand window to find either these items.

Found that the author of SPlayerX start the binary with arguments but not embed.
Check it out here if you are interested: PlayerCore.m

Related

Referencing macOS SDK header is not resolving when compiling with clang

I'm trying to link my Rust library with a macOS SDK. When trying to include a header from a macOS SDK in an .m file and compiling, the linker returns an error.
Code example:
#import <Foundation/Foundation.h>
#import <IOKit/KextManager.h>
int main(int argc, const char * argv[]) {
#autoreleasepool {
NSLog(#"Something");
}
return 0;
}
Error:
main.m:11:9: fatal error: 'IOKit/KextManager.h' file not found
#import <IOKit/KextManager.h>
^~~~~~~~~~~~~~~~~~~~~ 1 error generated.
When I reference the full path, the header gets included but I get other linker errors for some classes not found:
Code example:
#import <Foundation/Foundation.h>
#import "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Headers/kext/KextManager.h"
int main(int argc, const char * argv[]) {
#autoreleasepool {
NSLog(#"Something");
}
return 0;
}
Error I'm getting:
Undefined symbols for architecture x86_64: "_NSLog", referenced
from:
_main in main-891267.o "___CFConstantStringClassReference", referenced from:
CFString in main-891267.o "_objc_autoreleasePoolPop", referenced from:
_main in main-891267.o "_objc_autoreleasePoolPush", referenced from:
_main in main-891267.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to
see invocation)
I suspect this is because other headers are not resolved properly.
How to make headers resolving to work properly so all includes work not only from Xcode?
This code compiles and runs directly from Xcode without any additional references but is not compiling from terminal:
#import <Foundation/Foundation.h>
#import "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks/IOKit.framework/Headers/kext/KextManager.h"
//#import <IOKit/KextManager.h>
int main(int argc, const char * argv[]) {
#autoreleasepool {
CFDictionaryRef result = KextManagerCopyLoadedKextInfo(NULL, NULL);
NSLog(#"%#", result);
}
return 0;
}
Getting same linker error:
ld: warning: URGENT: building for OSX, but linking against dylib
(/usr/lib/libSystem.dylib) built for (unknown). Note: This will be an
error in the future. Undefined symbols for architecture x86_64:
"_KextManagerCopyLoadedKextInfo", referenced from:
_main in main-abff3c.o "_NSLog", referenced from:
_main in main-abff3c.o "___CFConstantStringClassReference", referenced from:
CFString in main-abff3c.o "_objc_autoreleasePoolPop", referenced from:
_main in main-abff3c.o "_objc_autoreleasePoolPush", referenced from:
_main in main-abff3c.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to
see invocation)
Update 2:
Compiler command:
clang -framework IOKit -framework Foundation main.m -o main
Works with full path to header, but does not for #include <IOKit/KextManager.h>
The solution is to link Xcode included frameworks into include folder.
For stable release:
ln -s /Applications/Xcode.app/Contents/Frameworks/ /usr/local/include/
And for Xcode beta:
ln -s /Applications/Xcode-beta.app/Contents/Frameworks/
/usr/local/include/
Then KextManager imported like this:
#import <IOKit/kext/KextManager.h>

iOS using microsoft band build error

I created the project, imported the microsoft band sdk
http://developer.microsoftband.com/download/Microsoft%20Band%20SDK%20for%20iOS.zip
And I tried intimate the sdk sensor sample
http://developer.microsoftband.com/download/Microsoft%20Band%20SDK%20and%20Samples%20for%20iOS.zip
my viewcontroller.h:
#import <UIKit/UIKit.h>
#import <MicrosoftBandKit_iOS/MicrosoftBandKit_iOS.h>
#interface ViewController : UIViewController<MSBClientManagerDelegate>
#property (strong, nonatomic) IBOutlet UIActivityIndicatorView *ConnectionIndicator;
.
.
.
other UI components
.
.
.
#end
my viewcontroller.m:
#import "ViewController.h"
#interface ViewController ()
#property (weak,nonatomic)MSBClient *client;
#end
#implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[MSBClientManager sharedManager].delegate = self;
_client = [[[MSBClientManager sharedManager] attachedClients]firstObject];
if ( _client == nil ) {
NSLog(#"Band connected failed: No Band paired");
return;
}else{
[[MSBClientManager sharedManager] connectClient:_client];
NSLog(#"Trying to connect to Band...");
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)clientManager:(MSBClientManager *)clientManager clientDidConnect:(MSBClient *)client{
}
-(void)clientManager:(MSBClientManager *)clientManager clientDidDisconnect:(MSBClient *)client{
}
-(void)clientManager:(MSBClientManager *)clientManager client:(MSBClient *)client didFailToConnectWithError:(NSError *)error{
}
#end
Warning:
Ld DerivedData/SenseWatch/Build/Products/Debug-iphoneos/SenseWatch.app/SenseWatch normal arm64
cd /Users/Jieyi/Documents/Repo/SenseWatch
export IPHONEOS_DEPLOYMENT_TARGET=8.0
export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/Jieyi/Documents/Repo/SenseWatch/DerivedData/SenseWatch/Build/Products/Debug-iphoneos -F/Users/Jieyi/Documents/Repo/SenseWatch/DerivedData/SenseWatch/Build/Products/Debug-iphoneos -F/Users/Jieyi/Downloads/MicrosoftBandKit_iOS_SAMPLES_1.3.10427.1 -filelist /Users/Jieyi/Documents/Repo/SenseWatch/DerivedData/SenseWatch/Build/Intermediates/SenseWatch.build/Debug-iphoneos/SenseWatch.build/Objects-normal/arm64/SenseWatch.LinkFileList -Xlinker -rpath -Xlinker #executable_path/Frameworks -miphoneos-version-min=8.0 -dead_strip -fembed-bitcode-marker -fobjc-arc -fobjc-link-runtime -framework MicrosoftBandKit_iOS -Xlinker -dependency_info -Xlinker /Users/Jieyi/Documents/Repo/SenseWatch/DerivedData/SenseWatch/Build/Intermediates/SenseWatch.build/Debug-iphoneos/SenseWatch.build/Objects-normal/arm64/SenseWatch_dependency_info.dat -o /Users/Jieyi/Documents/Repo/SenseWatch/DerivedData/SenseWatch/Build/Products/Debug-iphoneos/SenseWatch.app/SenseWatch
ld: warning: URGENT: all bitcode will be dropped because '/Users/Jieyi/Downloads/MicrosoftBandKit_iOS_SAMPLES_1.3.10427.1/MicrosoftBandKit_iOS.framework/MicrosoftBandKit_iOS(MSBClientManager.o)' was built without bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because '/Users/Jieyi/Downloads/MicrosoftBandKit_iOS_SAMPLES_1.3.10427.1/MicrosoftBandKit_iOS.framework/MicrosoftBandKit_iOS(MSBBLEProvider.o)' was built without bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because '/Users/Jieyi/Downloads/MicrosoftBandKit_iOS_SAMPLES_1.3.10427.1/MicrosoftBandKit_iOS.framework/MicrosoftBandKit_iOS(MSBClient.o)' was built without bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. Note: This will be an error in the future.
ld: warning: URGENT: all bitcode will be dropped because '/Users/Jieyi/Downloads/MicrosoftBandKit_iOS_SAMPLES_1.3.10427.1/MicrosoftBandKit_iOS.framework/MicrosoftBandKit_iOS(MSBDeviceManager.o)' was built without bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. Note: This will be an error in the future.
...
Error:
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_CBUUID", referenced from:
objc-class-ref in MicrosoftBandKit_iOS(MSBBLEProvider.o)
objc-class-ref in MicrosoftBandKit_iOS(MSBSpple.o)
objc-class-ref in MicrosoftBandKit_iOS(MSBPeripheral.o)
objc-class-ref in MicrosoftBandKit_iOS(MSBSensorManagerUtility.o)
objc-class-ref in MicrosoftBandKit_iOS(MSBZippyPushV2.o)
objc-class-ref in MicrosoftBandKit_iOS(MSBZippyCargo.o)
objc-class-ref in MicrosoftBandKit_iOS(MSBZippyCargoV2.o)
...
"_CBCentralManagerOptionShowPowerAlertKey", referenced from:
+[MSBBLEProvider buildCBCentralManagerOptions] in MicrosoftBandKit_iOS(MSBBLEProvider.o)
"_OBJC_CLASS_$_CBCentralManager", referenced from:
objc-class-ref in MicrosoftBandKit_iOS(MSBBLEProvider.o)
"_CBCentralManagerOptionRestoreIdentifierKey", referenced from:
+[MSBBLEProvider buildCBCentralManagerOptions] in MicrosoftBandKit_iOS(MSBBLEProvider.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
and I am pretty new to Xcode and objective-c
I have no idea what is this.
You are missing the CoreBuetooth framework. Include The framework under the link with libraries section.

While doing Monkeytalk setup in xcode for iOS app i faced this issue and i am stuck here

Undefined symbols for architecture i386:
"std::string::c_str() const", referenced from:
-[MTHTTPVirtualDirectory(ExecuteScript) executeAtom:withArgs:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeScript:withArgs:isFinding:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeMonkeyTalkJs:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeAsyncJsFunction:withArgs:withTimeout:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
"std::string::compare(std::string const&) const", referenced from:
bool std::operator==<char, std::char_traits<char>, std::allocator<char> >(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
"std::allocator<char>::allocator()", referenced from:
-[MTHTTPVirtualDirectory(ExecuteScript) executeAtom:withArgs:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeScript:withArgs:isFinding:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeMonkeyTalkJs:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeAsyncJsFunction:withArgs:withTimeout:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
"std::allocator<char>::~allocator()", referenced from:
-[MTHTTPVirtualDirectory(ExecuteScript) executeAtom:withArgs:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeScript:withArgs:isFinding:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeMonkeyTalkJs:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeAsyncJsFunction:withArgs:withTimeout:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
"std::string::append(char const*)", referenced from:
-[MTHTTPVirtualDirectory(ExecuteScript) executeAtom:withArgs:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeScript:withArgs:isFinding:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeMonkeyTalkJs:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeAsyncJsFunction:withArgs:withTimeout:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)", referenced from:
-[MTHTTPVirtualDirectory(ExecuteScript) executeAtom:withArgs:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeScript:withArgs:isFinding:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeMonkeyTalkJs:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeAsyncJsFunction:withArgs:withTimeout:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()", referenced from:
MTwebdriver::MTatoms::asString(char const* const*) in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
"std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()", referenced from:
-[MTHTTPVirtualDirectory(ExecuteScript) executeAtom:withArgs:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
MTwebdriver::MTatoms::asString(char const* const*) in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeScript:withArgs:isFinding:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeMonkeyTalkJs:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
-[MTHTTPVirtualDirectory(ExecuteScript) executeAsyncJsFunction:withArgs:withTimeout:] in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
"std::string::operator+=(char const*)", referenced from:
MTwebdriver::MTatoms::asString(char const* const*) in libMonkeyTalk-2.0.10.a(MTHTTPVirtualDirectory+ExecuteScript.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
You have to add the library libstdc++.6.0.9.dylib in order to build your app with the MonkeyTalk Agent.

Getting Strange Error Running Objective C Code

My project have no visible error but when i try to run it gives following error
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ConcreteScreen", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I am using my ContactScreen class in ViewController.m
i tried by #class ContactScree and #import "ContactScreen.h"
and in my ViewController i am using it as [ContactScreen myMethod];
when i comment out this line it work fine but now it is giving compile time error :(
yesterday it was wroking fine
here is my code
#import "ViewController.h"
#import "ConcreteScreen.h"
#interface ViewController ()
#end
#implementation ViewController
-(IBAction)btnContactPress:(id)sender{
NSLog(#"Contact Screen");
ConcreteScreen *coontact = [[ConcreteScreen alloc]init];
}
You confused ConcreteScreen and ContactScreen and compiler told you that it isn't aware about ConcreteScreen
Be sure your .m file is included in the project. It's possible to create it, use the header and all but it doesn't go into the build. Also it needs to be in the target.

GCDAsyncUdpSocket does not compile for iOS

I use this library: https://github.com/robbiehanson/CocoaAsyncSocket
There are examples for TCP on the iphone but not UDP. I think that everything should be just the same. Here is my code:
#import <UIKit/UIKit.h>
#class GCDAsyncUdpSocket;
#interface ThirdViewController : UIViewController
{
GCDAsyncUdpSocket *udpSocket;
}
.m:
#import "ThirdViewController.h"
#import "DDLog.h"
#import "DDTTYLogger.h"
#import "GCDAsyncUdpSocket.h"
static const int ddLogLevel = LOG_LEVEL_VERBOSE;
#implementation ThirdViewController
- (void)viewDidLoad
{
[DDLog addLogger:[DDTTYLogger sharedInstance]];
udpSocket = [[GCDAsyncUdpSocket alloc] initWithDelegate:self delegateQueue:dispatch_get_main_queue()];
}
But when compiling I get the errors:
Undefined symbols for architecture i386: "_OBJC_CLASS_$_DDLog",
referenced from:
objc-class-ref in ThirdViewController.o "_OBJC_CLASS_$_DDTTYLogger",
referenced from:
objc-class-ref in ThirdViewController.o "_OBJC_CLASS_$_GCDAsyncUdpSocket",
referenced from:
objc-class-ref in ThirdViewController.o ld: symbol(s) not found for architecture i386
What is wrong? Examples from the library compiled without errors.
You have to link CFNetwork.framework or if have it you're propably working on Automatic Reference Counter, turon off ARC for GCDAsyncUdpSocket using -fno-objc-arc
(Build Phases >> Link Binary With Libraries) Add CocoaLumberjack as optional dependency.