QT创建者:错误:未找到架构x86_64的符号

时间:2017-01-02 18:45:54

标签: c++ qt linker

我正在尝试在QT Creator中运行这个简单的代码。

    #include<iostream>
    using namespace std;

    const int SENTINEL = 0;
    int main() {
        cout<<"This program adds a list of numbers "<<endl;
        cout<<"Use "<<SENTINEL<<" to signal the end."<<endl;
        int total = 0;
        while(true) {
            int value;
            cout<<" ? ";
            cin>>value;
            if(value == SENTINEL) break;
            total += value;
        }
        cout<<"The total is "<<total<<endl;
        return 0;
    }

但我继续解决这两个问题。

  1. 错误:找不到架构x86_64的符号

  2. 错误:链接器命令失败,退出代码为1(使用-v查看调用)

  3. 我得到的完整描述就是这个。内部编译输出。

      

    架构x86_64的未定义符号:“Main()”,引用   从:         main.o中的Main(int,char **):未找到架构x86_64 clang的符号:错误:链接器命令失败并带有退出代码   1(使用-v查看调用)make:***   [simple-project.app/Contents/MacOS/simple-project]错误1 00:04:36:   进程“/ usr / bin / make”退出代码2.错误时   构建/部署项目简单项目(套件:桌面Qt 5.7.0 clang   64bit)执行步骤“Make”00:04:36:经过时间:00:27。

1 个答案:

答案 0 :(得分:0)

您的代码没有问题,如果您将其复制/粘贴到新项目中,它编译得很好。问题是某些.obj文件或Makefile文件存在问题。这些文件基本上包含尚未链接的已编译代码。只有在生成它们的源代码发生更改时,才会在每次编译时始终更新这些文件。这意味着当项目设置已更改(您显然已经这样做)时,这些文件不必更改以适应新设置,因此会生成错误。这个系统是为了使编译更快,但有时可能会像你的情况一样令人讨厌。要解决您的问题,只需删除包含这些文件的文件夹和编译的.exe文件。使用Qt Creator,此文件夹通常具有类似build-untitled-Desktop_Qt_5_7_0_MSVC2015_32bit-Release的名称。删除文件夹时,将删除所有文件,因此编译器必须在此次使用正确的设置生成新文件。