gpt4 book ai didi

c++ - Objective-C++ 为 iPhone 编译,但不是模拟器

转载 作者:行者123 更新时间:2023-11-28 03:58:00 26 4
gpt4 key购买 nike

我有一个 C++ 库,我想添加到我的 iphone 项目中。

在一个头文件中声明

@interface a
{
cppvirtualclass V;
}

对于具有 Release 设置的 iPhone 设备,这可以很好地编译。但是,无论有无调试信息,它都拒绝为模拟器编译。

报错

error: type 'V' has virtual member functions.

有没有办法解决这个问题,还是我必须只定义具体的 C++ 类?

最佳答案

默认情况下,Objective C 在创建 Objective C 对象时不会在 C++ 实例变量上运行构造函数。这意味着(我认为)C++ 对象的 vtable 将无法正确初始化。

尝试使您的实例变量成为指针并在 init 方法中分配它(并在 dealloc/finalize 中销毁它)。

或者

尝试在目标代码生成设置中设置“在 Ovjective-C 中调用 C++ 默认 Ctors/Dtors”。

(GCC_OBJC_CALL_CXX_CDTORS,-fobjc-call-cxx-cdtors)

关于c++ - Objective-C++ 为 iPhone 编译,但不是模拟器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2606705/

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