gpt4 book ai didi

objective-c - 使用 extern 指令导入 const double 构建失败

转载 作者:行者123 更新时间:2023-12-03 17:42:17 26 4
gpt4 key购买 nike

我有一个文件:

#import "OutletsHandler.h"


@implementation OutletsHandler

- (IBAction) pi : (id) sender
{
extern const double PI; // here I try to import PI
[textField setDoubleValue: PI];
}

- (id)init
{
self = [super init];
if (self)
{
}

return self;
}

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

@end

OutletsHandler.h 导入 CalculatorScanner.h,这是 CalculatorScanner.h:

#import <stdbool.h>

const double PI=3.141592654;

但是我遇到了语义问题:

Command /Developer/usr/bin/clang failed with exit code 1
ld: duplicate symbol _PI in /Users/ramy/Library/Developer/Xcode/DerivedData/Calculator- crcetknqiorefpbjxcrtydequwxf/Build/Intermediates/Calculator.build/Debug/Calculator.build/Objects-normal/x86_64/CalculatorScanner.o and /Users/ramy/Library/Developer/Xcode/DerivedData/Calculator-crcetknqiorefpbjxcrtydequwxf/Build/Intermediates/Calculator.build/Debug/Calculator.build/Objects-normal/x86_64/CalculatorAppDelegate.o for architecture x86_64

我做错了什么?

最佳答案

您的问题是您在 CalculatorScanner.h定义 PI,而您应该声明它。为了使其正确编译和链接,请将其放入 CalculatorScanner.h 中:

extern const double PI;

并将其放入CalculatorScanner.cpp中:

const double PI = 3.141592654;

但在这种情况下,这也不是真正正确的解决方案。这里正确的解决方案是使用标准常量 M_PI 而不是定义您自己的(不太准确)常量。

关于objective-c - 使用 extern 指令导入 const double 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9557066/

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