Использование статического .lib (c) в iOS-проекте - ожидается '=', ',', ';', 'asm' или 'attribute' до - PullRequest
0 голосов
/ 10 ноября 2010

Я пытаюсь использовать статические библиотеки, написанные на языке c, в проекте iOS.Я включил файлы .lib и .h в проект iOS.Когда я пытаюсь импортировать файлы заголовков в один из моих классов target-C, я получаю много Expected '=',',',';','asm' or 'attribute' before... ошибок в файле .h моей статической библиотеки.

Я использую xCode4 для разработки, которая, кажется,правильно добавили библиотеки.Когда я открываю проект с помощью Xcode 3, библиотеки добавляются в Target Group «связать двоичный файл с библиотеками», как указано в Как устранить ошибку компоновки - статическая библиотека iPhone .

Я получилСтатические библиотеки от компании, которая на самом деле использует эти библиотеки, так что я думаю, что заголовочный файл не виноват.Я сам не смог найти никаких ошибок.

Есть ли способ использовать файлы .lib с правильными заголовочными файлами в проекте ios?Или мне нужно что-то делать, кроме добавления файлов lib в целевую группу, чтобы использовать их в моем проекте?

С наилучшими пожеланиями, Майк

edit

фактическое сообщение об ошибке:

Ожидается * до * Ожидается '=', ', ','; ',' asm 'или' attribute 'перед _far _pascal

Фактический код, в который импортируется заголовок:

#import <Foundation/Foundation.h>
#import "SomethingDll.h"


@interface AccountingEntry : NSObject {
    NSString *entryDescription;
    NSDate *entryDate;
    double entryAmount;
    NSString *entryType;

}

@property (nonatomic, retain) NSString *entryDescription;
@property (nonatomic, retain) NSDate *entryDate;
@property (nonatomic) double entryAmount;
@property (nonatomic, retain) NSString *entryType;

//class methods go here

//instance methods go here
-(id)initWithDescription:(NSString *)eDesc date:(NSDate*)eDate amount:(double)eAmount type:(NSString *)eType;


@end

.h файл библиотеки.

#ifndef __SOMETHING_DLL
#define __SOMETHING_DLL



// constants for a function

#define FIRST_ERRTEXT    0
#define NEXT_ERRTEXT    1         

/*
...
some other #define of constants

*/ 

// Callback-Pointer Definitionen 

#define INFO_FUNC_DECL            BOOL (CALLBACK *lpInfoFunc)(int)
#define FILETRANS_FUNC_DECL     void (CALLBACK *lpFileTransFunc)(int,long)


// Funktionsdeklarationen

#ifdef WIN32
#define IMPORTAPI WINAPI
#else
#define IMPORTAPI  _far _pascal 
#endif


#ifdef __cplusplus
extern "C" {
#endif

    void  IMPORTAPI Something_Config(         int  iLogLevel,                   char *szLogFile,      
                                 long lTimeOut_Connect,           long lTimeOut,   
                                 long lTimeout_GetFile,           long lTime_Info,
                                 int  iSSLVersion,               char *szSSLCipher,
                                 char *szVerifyCertificateFile, char *szVerifyCertificatePath);
/*
  ...
  a lot of other functions
  ...
*/
#ifdef __cplusplus
}
#endif                      

#endif // End

1 Ответ

1 голос
/ 10 ноября 2010

Похоже, что эта библиотека предназначена для Win32, директива _far _pascal недоступна в gcc, а другие ошибки могут возникать из-за отсутствующих определений.Может быть, вам придется искать другую библиотеку, чтобы сделать работу.

...