gpt4 book ai didi

c++ - 具有库和意外文件类型的Xcode链接二进制文件

转载 作者:行者123 更新时间:2023-12-02 10:57:52 24 4
gpt4 key购买 nike

我想将Oracle Instantclient 库用于C++。我使用Xcode作为IDE。我通过“项目”>“构建阶段”>“与库链接二进制文件”添加了 occi 库。编译时出现以下警告和错误。

warning: skipping file '/Users/user/Library/Oracle/instantclient_12_2/libocci.dylib.12.1' (unexpected file type 'text.man' in Frameworks & Libraries build phase)

error: Undefined symbols for architecture x86_64: "oracle::occi::Environment::createEnvironment(oracle::occi::Environment::Mode, void*, void* ()(void, unsigned long), void* ()(void, void*, unsigned long), void ()(void, void*))", referenced from: _main in main.o



当然,该错误是由于警告引起的。看起来问题出在“.dylib”之后文件末尾的版本号(.12.1)(对于同一个文件夹中名称没有该名称的其他库,我没有问题文件扩展名后的版本号)。

可以下载 here Instantoji客户端库。您将看到下载的文件夹将包含文件 libocci.dylib libocci.dylib.12.1 。第一个是第二个的链接:
ls -l *occi*
lrwxr-xr-x@ 1 user wheel 18 Mar 23 14:01 libocci.dylib -> libocci.dylib.12.1
-rwxr-xr-x@ 1 user wheel 1465312 Jan 9 2018 libocci.dylib.12.1

我尝试使用这两个文件,Xcode会自动使用 libocci.dylib.12.1

问题:
  • 为什么在.dylib扩展名之后设置版本号?
  • 为什么编译器无法识别文件类型?
  • 如何执行才能使编译器识别文件类型?
  • 最佳答案

    我必须在product> scheme> edit scheme中将DYLD_LIBRARY_PATH添加到env vars。

    还要在构 build 置中将-locci和-lclntsh添加到“其他链接器标志”。

    关于c++ - 具有库和意外文件类型的Xcode链接二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55433221/

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