gpt4 book ai didi

c - 从自定义 Objective-C 框架公开 C 函数

转载 作者:搜寻专家 更新时间:2023-10-30 19:45:16 24 4
gpt4 key购买 nike

我正在尝试编写我的第一个自定义 Cocoa 框架,我想从框架中公开一个简单的 C 函数,它包含了一堆功能,就像 NSApplicationMain 所做的那样。当我直接从项目中直接导入文件时,一切正常,项目已构建并且我的 C 函数被正确调用。

现在我有一个包含这些文件的新 Cocoa Framework 项目,我无法构建我的程序,因为我收到“找不到符号”错误消息,特别是针对我的 C 函数。

我试过在头文件中的函数定义前加上 extern,但仍然没有。

谁能给我提个醒?如何通过自定义 Cocoa Framework 公开标准 C 函数?

我在做什么的粗略想法:

我的程序使用我的自定义框架:

#import <BDWebApplicationFramework/BDWebApplication.h>

int main (int argc, const char * argv[]) {
return BDWebApplicationMain(argc, (const char **)argv);
}

我的框架头文件:BDWebApplication.h

#import <Foundation/Foundation.h>

@interface BDWebApplication : NSObject {
NSString *name;
}
@property (readwrite, copy) NSString *name;

@end

extern int BDWebApplicationMain(int argc, const char * argv[]);

我的框架文件:BDWebApplication.m

#import "BDWebApplication.h"

@implementation BDWebApplication

@synthesize name;

- (id)init
{
[super init];
name = @"New name";
return self;
}

- (void)dealloc
{
[name release];
[super dealloc];
}

@end

int BDWebApplicationMain(int argc, const char * argv[])
{
// Do some Obj-c stuff here
}

最佳答案

这里的问题几乎肯定存在于您的 Xcode build设置中,而不是存在于您发布的代码中(看起来不错)。

首先要做的是:您是否链接到您的新框架?假设您是,您确定在构建框架时确实导出了您认为的符号吗? (有很多选项可以指定这一点,其中一些选项的语义可能会让粗心的人大吃一惊。)

框架和可执行文件的 Xcode 构建脚本的全文对帮助您诊断更有用。

关于c - 从自定义 Objective-C 框架公开 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3481184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com