首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xode项目无法编译简单的C++类

Xode项目无法编译简单的C++类
EN

Stack Overflow用户
提问于 2020-10-07 00:37:05
回答 1查看 164关注 0票数 0

我有一个简单的Xcode项目,其中包含一个C++类。然而,当我尝试用Xcode构建项目时,我得到了以下错误消息:

代码语言:javascript
复制
error: unable to spawn process '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang' (No such file or directory) (in target 'iOSStaticLibrary' from project 'iOSStaticLibrary')

此外,还会发出以下警告:

代码语言:javascript
复制
warning: Could not read serialized diagnostics file: error("Failed to open diagnostics file") (in target 'iOSStaticLibrary' from project 'iOSStaticLibrary')

我不知道如何将实际的项目附加到我的帖子中。它只包含3个文件,所以,我在下面发布了相关的文件名和内容。

为了重现问题,请在指定的文件夹中创建3个文件,并添加相应的内容。

文件ARM64/Debug/iOSStaticLibrary.xcodeproj/project.pbxproj

代码语言:javascript
复制
// !$*UTF8*$!
{
    archiveVersion = 1;
    classes = {
    };
    objectVersion = 46;
    objects = {

/* Begin PBXBuildFile section */
        3b051b2877334f3891e05fbf /* iOSStaticLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 810f8ddb516f4fd9aae95391 /* iOSStaticLibrary.cpp */; settings = {COMPILER_FLAGS = "-c -Wall -Wswitch -W\"no-deprecated-declarations\" -W\"empty-body\" -W\"bool-conversion\" -W\"constant-conversion\" -W\"shorten-64-to-32\" -W\"enum-conversion\" -W\"int-conversion\" -W\"return-type\" -Wparentheses -W\"no-pointer-sign\" -W\"no-format\" -Wuninitialized -W\"unreachable-code\" -W\"unused-function\" -W\"unused-value\" -W\"unused-variable\" -O0 -fno-strict-aliasing -fwritable-strings -fno-threadsafe-statics -fno-exceptions -std=gnu++11 -x c++"; }; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
        0e5228c6fe3a40ef9446f1d3 /* libiOSStaticLibrary.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libiOSStaticLibrary.a; sourceTree = BUILT_PRODUCTS_DIR; };
        810f8ddb516f4fd9aae95391 /* iOSStaticLibrary.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = iOSStaticLibrary.cpp; path = ../../../iOSStaticLibrary.cpp; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
        c8f1fdfa1a1a4cf2af0a7098 /* Frameworks */ = {
            isa = PBXFrameworksBuildPhase;
            buildActionMask = 2147483647;
            files = (
            );
            runOnlyForDeploymentPostprocessing = 0;
        };
/* End PBXFrameworksBuildPhase section */

/* Begin PBXGroup section */
        20adea7cddb14f79ab5df50b /* Products */ = {
            isa = PBXGroup;
            children = (
                0e5228c6fe3a40ef9446f1d3 /* libiOSStaticLibrary.a */,
            );
            name = Products;
            sourceTree = SOURCE_ROOT;
        };
        cb87a76375d04d85a8368aa7 = {
            isa = PBXGroup;
            children = (
                810f8ddb516f4fd9aae95391 /* iOSStaticLibrary.cpp */,
                20adea7cddb14f79ab5df50b /* Products */,
            );
            sourceTree = "\"<group>\"";
        };
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
        3488e49fcf514802b7be61b6 /* iOSStaticLibrary */ = {
            isa = PBXNativeTarget;
            buildConfigurationList = 67256f7dc92b42baa13ec8d3 /* Build configuration list for PBXNativeTarget "iOSStaticLibrary" */;
            buildPhases = (
                7baf7bfde3004dd493908ddd /* Sources */,
                c8f1fdfa1a1a4cf2af0a7098 /* Frameworks */,
            );
            buildRules = (
            );
            dependencies = (
            );
            name = iOSStaticLibrary;
            productName = iOSStaticLibrary;
            productReference = 0e5228c6fe3a40ef9446f1d3 /* libiOSStaticLibrary.a */;
            productType = "com.apple.product-type.library.static";
        };
/* End PBXNativeTarget section */

/* Begin PBXProject section */
        ee73158d3505468a8fdc43b9 /* Project object */ = {
            isa = PBXProject;
            attributes = {
                LastUpgradeCheck = 0610;
                ORGANIZATIONNAME = MyOrganizationName;
                TargetAttributes = {
                    3488e49fcf514802b7be61b6 = {
                        CreatedOnToolsVersion = 6.1;
                    };
                };
            };
            buildConfigurationList = 33fd7959eb644d189bbaa7f7 /* Build configuration list for PBXProject "iOSStaticLibrary" */;
            compatibilityVersion = "Xcode 3.2";
            developmentRegion = English;
            hasScannedForEncodings = 0;
            knownRegions = (
                English,
                en,
            );
            mainGroup = cb87a76375d04d85a8368aa7;
            productRefGroup = 20adea7cddb14f79ab5df50b /* Products */;
            projectDirPath = "\n\n        ";
            projectRoot = "\n\n        ";
            targets = (
                3488e49fcf514802b7be61b6 /* iOSStaticLibrary */,
            );
        };
/* End PBXProject section */

/* Begin PBXSourcesBuildPhase section */
        7baf7bfde3004dd493908ddd /* Sources */ = {
            isa = PBXSourcesBuildPhase;
            buildActionMask = 2147483647;
            files = (
                3b051b2877334f3891e05fbf /* iOSStaticLibrary.cpp in Sources */,
            );
            runOnlyForDeploymentPostprocessing = 0;
        };
/* End PBXSourcesBuildPhase section */

/* Begin XCBuildConfiguration section */
        1cbb1a8c7cbf4c2699369b65 /* Debug */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
            };
            name = Debug;
        };
        fda96981947c4c2cb659f3e3 /* Debug */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                CLANG_CXX_LIBRARY = "libc++";
                IPHONEOS_DEPLOYMENT_TARGET = 8.1;
                ONLY_ACTIVE_ARCH = YES;
                PRODUCT_NAME = "$(TARGET_NAME)";
                SDKROOT = iphoneos;
                SKIP_INSTALL = YES;
            };
            name = Debug;
        };
/* End XCBuildConfiguration section */

/* Begin XCConfigurationList section */
        33fd7959eb644d189bbaa7f7 /* Build configuration list for PBXProject "iOSStaticLibrary" */ = {
            isa = XCConfigurationList;
            buildConfigurations = (
                1cbb1a8c7cbf4c2699369b65 /* Debug */,
            );
            defaultConfigurationIsVisible = 0;
            defaultConfigurationName = Debug;
        };
        67256f7dc92b42baa13ec8d3 /* Build configuration list for PBXNativeTarget "iOSStaticLibrary" */ = {
            isa = XCConfigurationList;
            buildConfigurations = (
                fda96981947c4c2cb659f3e3 /* Debug */,
            );
            defaultConfigurationIsVisible = 0;
            defaultConfigurationName = Debug;
        };
/* End XCConfigurationList section */
    };
    rootObject = ee73158d3505468a8fdc43b9 /* Project object */;
}

文件iOSStaticLibrary.h

代码语言:javascript
复制
class iOSStaticLibrary
{
public:
    iOSStaticLibrary();
    ~iOSStaticLibrary();
};

文件iOSStaticLibrary.cpp

代码语言:javascript
复制
#include "iOSStaticLibrary.h"

iOSStaticLibrary::iOSStaticLibrary()
{
}

iOSStaticLibrary::~iOSStaticLibrary()
{
}

我的假设是project.pbxproj中的某些东西并不是它应该的样子。这个文件是由代码生成器生成的,而不是由Xcode本身生成的,因此很可能是这种情况。

然而,对于我的生活,我找不出哪里出了问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-08 01:08:39

好吧,我找到问题所在了。代码生成器将Xcode项目创建为XML文件。如果我在Xcode中打开它并对其进行更改,Xcode会自动将文件转换为另一种非XML文件格式(即,如问题所示)

现在,代码生成器发出以下有问题的代码:

代码语言:javascript
复制
        ...
        <key>projectDirPath</key>
        <string>
        </string>
        ...
        <key>projectRoot</key>
        <string>
        </string>
        ..

两个键(projectDirPath / projectRoot)都应该有一个空字符串作为值,而且在上面的XML中看起来确实是空的。

但是,Xcode对此有不同的解释。如果将XML文件转换为另一种格式,则如下所示:

代码语言:javascript
复制
...
projectDirPath = "\n\n        ";
projectRoot = "\n\n        ";
...

因此,Xcode将<string></string>之间的空格解释为实际值。要修复它,必须将代码生成器调整为发出

代码语言:javascript
复制
        ...
        <key>projectDirPath</key>
        <string></string>
        ...
        <key>projectRoot</key>
        <string></string>
        ...

或者<string />或任何其他有效的方式来代替上述方法。这实际上解决了问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64230169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档