Xcode:使用C++静态库
Xcode: Using C++ static library
我想使用在Eclipse中Xcode 4:中构建的C++静态库
例如,我有一个非常简单的库:
你好.h
class Test{ public: static int getX();};
你好.cpp
#include "hello.h"
int Test::getX(){return 10;}
因此,在Eclipse中构建之后,我有了一个库.a。现在,我将.a文件和头导入到Xcode应用程序中。问题是,在我创建的.mm文件中,我无法调用"int x=Test::getX();",它显示了2个错误:
体系结构i386的未定义符号:"测试::getX()",引用自:-LibFetching.o 中的[LibFetching onlyfortest]
ld:找不到体系结构i386的符号clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
你知道我该怎么修吗?非常感谢。
从问题中可以看出,您正试图将C++静态库链接到目标C++项目
转到项目->构建设置,搜索C++语言方言和C++标准库。选择选项"编译器默认值"为他们两个,它应该工作
还要检查是否必须将其他链接器标志设置为-lsdc++
您需要将静态库拖动到Xcode项目中。然后在左侧导航栏中选择要添加库的项目,然后选择项目目标(如果您有多个库,则选择需要该库的目标)。
然后单击Build Phases,在Link Binary with Libraries部分(如果它还不存在,请创建一个),添加您的库,也将其添加到目标依赖项部分。
您可能需要在内部版本设置的标题搜索路径中输入库标题的路径。
相关文章:
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- #为""定义宏;静态";针对不同的上下文
- cmake如何在fedora工作站中找到boost静态库包
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 将公共但非静态的成员函数与ALGLIB集成
- cmake在我的项目中所需的所有静态库都不成功
- C++从另一个类访问公共静态向量的正确方法是什么
- 基于boost的程序的静态链接——zlib问题
- 在静态库中嵌入类方法
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 如何在C++中获得"静态纯虚拟"功能?
- 私有类型的静态常量成员
- 使用gcc从静态链接的文件中查找可选符号
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 如何在C++中使用非静态成员函数作为回调函数
- 将静态库链接到不带-fPIC的共享库中
- 静态结构和一个定义规则
- 为什么虚函数不能是静态的和全局的?
- C++17中函数模板中的静态数组初始化(MSVC 2019)
- 停止cmake target_link_libraries将插件中静态库的两个对象文件链接到静态库本身