gpt4 book ai didi

iphone - 将我的 C++ 类链接到 iPhone xcode 上的 C 静态库 .a 时出现问题

转载 作者:行者123 更新时间:2023-11-30 14:30:11 25 4
gpt4 key购买 nike

我在链接我编译为单独目标的 .a C 静态库时遇到问题。

我的库名为 libtest.a,只有一个函数:int test(),它始终返回 1。我已将 libtest.a 和 test.h (其头文件)放入 mylibrary_directory

然后我创建一个新的 iphone view 基础项目,并将 mylibrary_directory 添加到 xcode 中的库搜索路径、标题搜索路径和用户标题搜索路径中。此外,我还在其他链接器标志选项中添加了 -ltest 标志。

当我在 myProjectViewController.m 中调用 test() 时,它可以工作

- (void)viewDidLoad {
[super viewDidLoad];
test();
}

到目前为止一切顺利。但是当我在项目中创建一个新的 C++ 类并调用 test() 时,就会出现问题。然后链接器提示找不到符号 _test() 并且 projetc 没有构建。

myClass.h:

#import "test.h"

class myClass
{
int testCall();

}

myClass.mm:

int myClass::testCall()
{
return test();
}

我得到:

undefined symbol :

  "test()", referenced from:
myClass::testCall() in myClass-64D20670AC6C3193.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

Ld 命令输出确实显示了正确的 -ltest 和 -L Correct_paths

我的猜测是,当我编译我的库或在 myProject 中时,我丢失了一些标志。有什么想法或帮助吗?

谢谢

爸爸。

最佳答案

C++ 名称修改可能会让您感到困扰。确保在 C++ 可以看到的地方标记 test() extern "C" 声明。

关于iphone - 将我的 C++ 类链接到 iPhone xcode 上的 C 静态库 .a 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3681375/

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