cross-post from:
http://stackoverflow.com/questions/32555122/iso-c-forbids-declaration-of-pthread-cond-t-with-no-type

I'm getting some errors while trying to compile objective-c code that I
didn't originally write. The platform is GNUstep on Windows 10. I'm very
new to all this, so I suspect I'm making an elementary mistake.

Help!

*Compilation Errors:*

$ makeThis is gnustep-make 2.6.5. Type 'make print-gnustep-make-help'
for help.Making all for tool stockfish...
 Compiling file main.m ...
 Compiling file EngineController.mm ...In file included from
EngineController.mm:1:0:EngineController.h:6:4: error: ISO C++ forbids
declaration of 'pthread_cond_t' with no type
[-fpermissive]EngineController.h:6:19: error: expected ';' before
'WaitCondition'EngineController.h:7:4: error: ISO C++ forbids
declaration of 'pthread_mutex_t' with no type
[-fpermissive]EngineController.h:7:20: error: expected ';' before
'WaitConditionLock'EngineController.mm: In function
'-[EngineController initEngine]':EngineController.mm:10:27: warning:
suggest parentheses around assignment used as truth value
[-Wparentheses]EngineController.mm:13:27: error: 'WaitConditionLock'
was not declared in this scopeEngineController.mm:13:50: error:
'pthread_mutex_init' was not declared in this
scopeEngineController.mm:14:26: error: 'WaitCondition' was not
declared in this scopeEngineController.mm:14:45: error:
'pthread_cond_init' was not declared in this
scopeEngineController.mm:18:12: warning: 'objc_object*
objc_get_class(const char*)' is deprecated (declared at
C:/GNUstep/GNUstep/System/Library/Headers/objc/runtime-deprecated.h:30)
[-Wdeprecated-declarations]
make[3]: *** [obj/stockfish.obj/EngineController.mm.o] Error 1
make[2]: *** [internal-tool-all_] Error 2
make[1]: *** [stockfish.all.tool.variables] Error 2
make: *** [internal-all] Error 2

*GNUmakefile*

include $(GNUSTEP_MAKEFILES)/common.make

TOOL_NAME = stockfish
stockfish_OBJC_FILES = main.m
stockfish_OBJCC_FILES = EngineController.mm

include $(GNUSTEP_MAKEFILES)/tool.make

*main.m*

#import <Foundation/Foundation.h>#import <pthread.h>#import <EngineController.h>
int
main (void){

  [[Controller alloc] init];

  return 0;}

*EngineController.h*

#import <Foundation/Foundation.h>
@class Controller;
@interface EngineController : NSObject {
   pthread_cond_t WaitCondition;
   pthread_mutex_t WaitConditionLock;
   BOOL ignoreBestmove;
   BOOL engineThreadShouldStop;
   BOOL engineThreadIsRunning;
   BOOL engineIsThinking;}
@property (nonatomic, readonly) BOOL engineIsThinking;@property
(nonatomic, readonly) BOOL engineThreadIsRunning;
- (void)initEngine;
@end
extern EngineController *GlobalEngineController;

*EngineController.mm*

#import "EngineController.h"
EngineController *GlobalEngineController;
@implementation EngineController
@synthesize engineIsThinking, engineThreadIsRunning;
- (void)initEngine {
   if (self = [super init]) {

      // Initialize locks and conditions
      pthread_mutex_init(&WaitConditionLock, NULL);
      pthread_cond_init(&WaitCondition, NULL);

      // Start engine thread
      NSThread *thread =
         [[NSThread alloc] initWithTarget: self
                                 selector: @selector(startEngine:)
                                   object: nil];
      [thread setStackSize: 0x100000];
      [thread start];
      [thread release];

      ignoreBestmove = NO;
      engineIsThinking = NO;
   }
   GlobalEngineController = self;}
@end
_______________________________________________
Discuss-gnustep mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/discuss-gnustep

Reply via email to