Xcode15 - 升级后库搜索路径中断

Xcode15 - Library Search Paths broken after upgrade

提问人:miliardo18 提问时间:11/11/2023 更新时间:11/11/2023 访问量:37

问:

我使用 Xcode 开发 C++ 软件,每次在主要版本发布后升级 Xcode 时,更新都会中断我的库搜索路径到指定库以链接我在项目中使用的库。当我尝试在升级后运行程序时,运行失败,因为它尝试在未指定的路径中链接库,而忽略了我实际指定的路径。

这发生在去年,我不得不用我的文件重新创建整个项目,只是为了让 Xcode 正常运行。一年后,我在升级到 Xcode 15 时遇到了同样的问题。

My project uses the following libraries:
    libmysqlcppconn.9.dylib
    libcurl.4.dylib
    libcrypto.1.1.dylib
    libssl.1.1.dylib

Which are in the following paths: 
    /usr/local/mysql-connector-c++-8.0.32/lib64/
    /usr/local/Cellar/curl/8.0.1/lib/
    /usr/local/Cellar/[email protected]/1.1.1d/lib/

即使检查我的 .plist 文件,路径也存在: (包括整个调试配置,因此您可以看到编译器选项,以防我遗漏某些内容)


    /* Begin XCBuildConfiguration section */
        433351C729DBA97D005D693C /* Debug */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                ALWAYS_SEARCH_USER_PATHS = NO;
                CLANG_ANALYZER_NONNULL = YES;
                CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
                CLANG_CXX_LANGUAGE_STANDARD = "c++20";
                CLANG_ENABLE_MODULES = YES;
                CLANG_ENABLE_OBJC_ARC = YES;
                CLANG_ENABLE_OBJC_WEAK = YES;
                CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
                CLANG_WARN_BOOL_CONVERSION = YES;
                CLANG_WARN_COMMA = YES;
                CLANG_WARN_CONSTANT_CONVERSION = YES;
                CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
                CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
                CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
                CLANG_WARN_EMPTY_BODY = YES;
                CLANG_WARN_ENUM_CONVERSION = YES;
                CLANG_WARN_INFINITE_RECURSION = YES;
                CLANG_WARN_INT_CONVERSION = YES;
                CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
                CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
                CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
                CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
                CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
                CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
                CLANG_WARN_STRICT_PROTOTYPES = YES;
                CLANG_WARN_SUSPICIOUS_MOVE = YES;
                CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
                CLANG_WARN_UNREACHABLE_CODE = YES;
                CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
                CODE_SIGN_IDENTITY = "Mac Developer";
                COPY_PHASE_STRIP = NO;
                DEBUG_INFORMATION_FORMAT = dwarf;
                ENABLE_STRICT_OBJC_MSGSEND = YES;
                ENABLE_TESTABILITY = YES;
                GCC_C_LANGUAGE_STANDARD = gnu11;
                GCC_DYNAMIC_NO_PIC = NO;
                GCC_NO_COMMON_BLOCKS = YES;
                GCC_OPTIMIZATION_LEVEL = 0;
                GCC_PREPROCESSOR_DEFINITIONS = (
                    "DEBUG=1",
                    "$(inherited)",
                );
                GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
                GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
                GCC_WARN_UNDECLARED_SELECTOR = YES;
                GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
                GCC_WARN_UNUSED_FUNCTION = YES;
                GCC_WARN_UNUSED_VARIABLE = YES;
                LIBRARY_SEARCH_PATHS = (
                    "/usr/local/mysql-connector-c++-8.0.32/lib64/",
                    "/usr/local/Cellar/curl/8.0.1/lib/",
                    "/usr/local/Cellar/[email protected]/1.1.1d/lib/",
                    "/usr/local/Cellar/curl/8.0.1/lib/"
                );
                "LIBRARY_SEARCH_PATHS[arch=*]" = "";
                MACOSX_DEPLOYMENT_TARGET = 13.0;
                MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
                MTL_FAST_MATH = YES;
                ONLY_ACTIVE_ARCH = YES;
                SDKROOT = macosx;
            };
            name = Debug;
        };

当我运行程序时,这是崩溃报告:


    dyld[23554]: Library not loaded: libcrypto.1.1.dylib
  Referenced from: <857C24D7-4369-3475-9EF1-E9EBD423B3DB> /Users/USR/Library/Developer/Xcode/DerivedData/Hub-fpmiypgiftiippagwwmypglahtxj/Build/Products/Debug/Hub

    Reason: tried: '/Users/USR/Library/Developer/Xcode/DerivedData/Hub-fpmiypgiftiippagwwmypglahtxj/Build/Products/Debug/libcrypto.1.1.dylib' (no such file),
    '/usr/lib/system/introspection/libcrypto.1.1.dylib' (no such file, not in dyld cache),
    'libcrypto.1.1.dylib' (no such file), 
    '/System/Volumes/Preboot/Cryptexes/OSlibcrypto.1.1.dylib' (no such file), 
    'libcrypto.1.1.dylib' (no such file), 
    '/Users/USR/Library/Developer/Xcode/DerivedData/Hub-fpmiypgiftiippagwwmypglahtxj/Build/Products/Debug/libcrypto.1.1.dylib' (no such file),
    '/usr/lib/system/introspection/libcrypto.1.1.dylib' (no such file, not in dyld cache),
    '/Users/USR/Documents/workspace/Hub Working Directory/libcrypto.1.1.dylib' (no such file),
    '/System/Volumes/Preboot/Cryptexes/OS/Users/USR/Documents/workspace/Hub Working Directory/libcrypto.1.1.dylib' (no such file), 
    '/Users/USR/Documents/workspace/Hub Working Directory/libcrypto.1.1.dylib' (no such file)

(为了便于阅读,编辑了上面的文本,突出显示了搜索路径)

似乎它甚至没有尝试搜索指定的路径。上次发生这种情况时,我不仅必须重新创建整个 .xcodeproj 文件,而且还必须在特定目录中创建指向正确库位置的符号链接作为解决方法。再次更新后,我发现自己处于相同的位置。

某处是否有覆盖我的库搜索路径的设置或默认位置?
有没有办法在不重新创建文件的情况下解决此问题? 还有其他人也有这个问题吗?

我感谢任何人对此的任何帮助或意见。

C++ 操作系统 Xcode C++20 Xcode15

评论


答: 暂无答案