铿锵编译C++;到目标文件,错误:无法与目标计算机接口 我尝试用CLAN编程来编译一些C++到一个对象文件,在代码行为中,我得到了“不能与目标机器接口”的错误。我想知道我是否错过了一些步骤,或者可能是什么问题

铿锵编译C++;到目标文件,错误:无法与目标计算机接口 我尝试用CLAN编程来编译一些C++到一个对象文件,在代码行为中,我得到了“不能与目标机器接口”的错误。我想知道我是否错过了一些步骤,或者可能是什么问题,c++,compiler-construction,compiler-errors,clang,llvm,C++,Compiler Construction,Compiler Errors,Clang,Llvm,以下是程序的输出: C:\Application\Debug>Application Initializing targets Targets initialized clang -cc1 version 3.4 based upon LLVM 3.4svn default target i686-pc-win32 #include "..." search starts here: #include <...> search starts here: c:\mingw\li

以下是程序的输出:

C:\Application\Debug>Application
Initializing targets
Targets initialized
clang -cc1 version 3.4 based upon LLVM 3.4svn default target i686-pc-win32
#include "..." search starts here:
#include <...> search starts here:
 c:\mingw\lib\gcc\mingw32\4.7.2\include\c++
 c:\mingw\lib\gcc\mingw32\4.7.2\include\c++\mingw32
 c:\mingw\lib\gcc\mingw32\4.7.2\include\c++\backward
 c:\mingw\lib\gcc\mingw32\4.7.2\include
 c:\mingw\include
 c:\mingw\lib\gcc\mingw32\4.7.2\include-fixed
End of search list.
error: unable to interface with target machine
1 error generated.
#include <string>
#include <memory>
#include <iostream>
#include <limits.h>

#include <llvm/Bitcode/ReaderWriter.h>
#include "clang/CodeGen/CodeGenAction.h"
#include "clang/Basic/DiagnosticOptions.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/Tool.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/CompilerInvocation.h"
#include "clang/Frontend/FrontendDiagnostic.h"
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "llvm/ADT/OwningPtr.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ExecutionEngine/ExecutionEngine.h"
#include "llvm/ExecutionEngine/JIT.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/Support/system_error.h"
#include "llvm/Support/Host.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/TargetSelect.h"
#include "llvm/Support/raw_ostream.h"

#include <Windows.h>

using namespace std;
using namespace llvm;
using namespace clang;
using namespace clang::driver;

int main(int argc, const char **argv, char * const *envp) {

    llvm::InitializeNativeTarget();

    IntrusiveRefCntPtr<DiagnosticOptions> DiagOpts = new DiagnosticOptions();
    TextDiagnosticPrinter *DiagClient =
        new TextDiagnosticPrinter(llvm::errs(), &*DiagOpts);

    IntrusiveRefCntPtr<DiagnosticIDs> DiagID(new DiagnosticIDs());
    DiagnosticsEngine Diags(DiagID, &*DiagOpts, DiagClient);

    driver::ArgStringList CCArgs;

    CCArgs.push_back("-cc1");
    CCArgs.push_back("-triple");
    CCArgs.push_back("i686-pc-win32");
    CCArgs.push_back("-emit-obj");
    CCArgs.push_back("-O3");
    CCArgs.push_back("-nostdsysteminc");
    CCArgs.push_back("-mrelax-all");
    CCArgs.push_back("-disable-free");
    CCArgs.push_back("-v");
    CCArgs.push_back("-coverage-file");
    CCArgs.push_back("test.o");
    CCArgs.push_back("-main-file-name");
    CCArgs.push_back("test.cpp");
    CCArgs.push_back("-mrelocation-model");
    CCArgs.push_back("static");
    CCArgs.push_back("-mdisable-fp-elim");
    CCArgs.push_back("-fmath-errno");
    CCArgs.push_back("-masm-verbose");
    CCArgs.push_back("-mconstructor-aliases");
    CCArgs.push_back("-target-cpu");
    CCArgs.push_back("pentium4");
    CCArgs.push_back("-internal-isystem");
CCArgs.push_back("c:\\mingw\\lib\\gcc\\mingw32\\4.7.2\\include\\c++");
    CCArgs.push_back("-internal-isystem");
CCArgs.push_back("c:\\mingw\\lib\\gcc\\mingw32\\4.7.2\\include\\c++\\mingw32");
    CCArgs.push_back("-internal-isystem");
CCArgs.push_back("c:\\mingw\\lib\\gcc\\mingw32\\4.7.2\\include\\c++\\backward");
    CCArgs.push_back("-internal-isystem");
CCArgs.push_back("c:\\mingw\\lib\\gcc\\mingw32\\4.7.2\\include");
    CCArgs.push_back("-internal-isystem");
    CCArgs.push_back("c:\\mingw\\include");
    CCArgs.push_back("-internal-isystem");
CCArgs.push_back("c:\\mingw\\lib\\gcc\\mingw32\\4.7.2\\include-fixed");
    CCArgs.push_back("-std=c++11");
    CCArgs.push_back("-fdeprecated-macro");
    CCArgs.push_back("-ferror-limit");
    CCArgs.push_back("19");
    CCArgs.push_back("-fmessage-length");
    CCArgs.push_back("150");
    CCArgs.push_back("-mstackrealign");
    CCArgs.push_back("-fms-extensions");
    CCArgs.push_back("-fmsc-version=1300");
    CCArgs.push_back("-fobjc-runtime=gcc");
    CCArgs.push_back("-fobjc-default-synthesize-properties");
    CCArgs.push_back("-fcxx-exceptions");
    CCArgs.push_back("-fexceptions");
    CCArgs.push_back("-fdiagnostics-show-option");
    CCArgs.push_back("-fcolor-diagnostics");
    CCArgs.push_back("-backend-option");
    CCArgs.push_back("-vectorize-loops");
    CCArgs.push_back("-x");
    CCArgs.push_back("c++");
    CCArgs.push_back("-o");
    CCArgs.push_back("test.o");
    CCArgs.push_back("test.cpp");

    OwningPtr<CompilerInvocation> CI(new CompilerInvocation);
    CompilerInvocation::CreateFromArgs(*CI,
        const_cast<const char **>(CCArgs.data()),
        const_cast<const char **>(CCArgs.data()) +
        CCArgs.size(),
        Diags);

    // Create a compiler instance to handle the actual work.
    CompilerInstance Clang;
    Clang.setInvocation(CI.take());

    // Create the compilers actual diagnostics engine.
    Clang.createDiagnostics();
    if (!Clang.hasDiagnostics())
        return 1;

    OwningPtr<CodeGenAction> Act(new EmitObjAction());
    if (!Clang.ExecuteAction(*Act))
        return 1;

    return 0;
}
C:\Application\Debug>Application
初始化目标
目标已初始化
clang-cc1 3.4版基于LLVM 3.4svn默认目标i686-pc-win32
#包括“…”搜索从这里开始:
#包括搜索从这里开始:
c:\mingw\lib\gcc\mingw32\4.7.2\include\c++
c:\mingw\lib\gcc\mingw32\4.7.2\include\c++\mingw32
c:\mingw\lib\gcc\mingw32\4.7.2\include\c++\backward
c:\mingw\lib\gcc\mingw32\4.7.2\include
c:\mingw\include
c:\mingw\lib\gcc\mingw32\4.7.2\include-fixed
搜索列表结束。
错误:无法与目标计算机接口
生成1个错误。
以下是我的(非常简单)程序:

#包括
#包括
#包括
#包括
#包括
#包括“clang/CodeGen/CodeGenAction.h”
#包括“叮当声/基本/诊断选项.h”
#包括“clang/Driver/Compilation.h”
#包括“叮当声/司机/司机.h”
#包括“叮当声/驱动器/工具h”
#包括“clang/Frontend/CompilerInstance.h”
#包括“clang/Frontend/CompilerInvocation.h”
#包括“clang/Frontend/FrontendDiagnostic.h”
#包括“clang/Frontend/TextDiagnosticPrinter.h”
#包括“llvm/ADT/OwningPtr.h”
#包括“llvm/ADT/SmallString.h”
#包括“llvm/ExecutionEngine/ExecutionEngine.h”
#包括“llvm/ExecutionEngine/JIT.h”
#包括“llvm/IR/Module.h”
#包括“llvm/IR/LLVMContext.h”
#包括“llvm/Support/system_error.h”
#包括“llvm/Support/Host.h”
#包括“llvm/Support/ManagedStatic.h”
#包括“llvm/Support/Path.h”
#包括“llvm/Support/TargetSelect.h”
#包括“llvm/Support/raw_ostream.h”
#包括
使用名称空间std;
使用名称空间llvm;
使用名称空间铿锵;
使用namespace-clang::driver;
int main(int argc,常量char**argv,char*const*envp){
llvm::InitializeNativeTarget();
INTERSIVEREFCNTPTR DiagOpts=新诊断选项();
文本诊断打印机*诊断客户端=
新的文本诊断打印机(llvm::errs(),&*DiagOpts);
INTERSIVEREFCNTPTR DiagID(新诊断ID());
DiagnosticsEngine Diags(DiagID和DiagOpts、DiagClient);
驱动程序::ArgStringList CCArgs;
CCArgs.向后推_(“-cc1”);
CCArgs.向后推(“三倍”);
CCArgs.推回(“i686-pc-win32”);
CCArgs.向后推(“发射obj”);
CCArgs.向后推(“O3”);
CCArgs.向后推(“NostSystemic”);
CCArgs.向后推(“全部为mrelax”);
CCArgs.推回(“禁用自由”);
CCArgs.向后推(“v”);
CCArgs.push_back(“-coverage file”);
CCArgs.推回(“测试o”);
CCArgs.push_back(“-主文件名”);
CCArgs.推回(“test.cpp”);
CCArgs.推回(“位置模型”);
CCArgs.推回(“静态”);
CCArgs.向后推(“可计量fp elim”);
CCArgs.向后推(“fmath errno”);
CCArgs.push_back(“-masm verbose”);
CCArgs.push_back(“-mconstructor别名”);
CCArgs.push_back(“-目标cpu”);
CCArgs.推回(“奔腾4”);
CCArgs.推回(“内部isystem”);
CCArgs.push_back(“c:\\mingw\\lib\\gcc\\mingw32\\4.7.2\\include\\c++”);
CCArgs.推回(“内部isystem”);
CCArgs.push_back(“c:\\mingw\\lib\\gcc\\mingw32\\4.7.2\\include\\c++\\mingw32”);
CCArgs.推回(“内部isystem”);
CCArgs.push_back(“c:\\mingw\\lib\\gcc\\mingw32\\4.7.2\\include\\c++\\backward”);
CCArgs.推回(“内部isystem”);
CCArgs.push_back(“c:\\mingw\\lib\\gcc\\mingw32\\4.7.2\\include”);
CCArgs.推回(“内部isystem”);
c args.向后推(“c:\\mingw\\include”);
CCArgs.推回(“内部isystem”);
CCArgs.push_back(“c:\\mingw\\lib\\gcc\\mingw32\\4.7.2\\include fixed”);
CCArgs.push_back(“-std=c++11”);
CCArgs.push_back(“-fdeprecated macro”);
CCArgs.推回(“-ferror限制”);
CCArgs.推回(“19”);
CCArgs.push_back(“-fmessage length”);
CCArgs.推回(“150”);
CCArgs.向后推(“mstackrealign”);
CCArgs.推回(“fms扩展”);
CCArgs.推回(“-fmsc版本=1300”);
CCArgs.push_back(“-fobjc runtime=gcc”);
CCArgs.push_back(“-fobjc default synthesis properties”);
CCArgs.推回(“fcxx例外”);
CCArgs.推回(“-feexceptions”);
CCArgs.推回(“诊断显示选项”);
CCArgs.推回(“-fcolor diagnostics”);
CCArgs.push_back(“-backend选项”);
CCArgs.push_back(“-矢量化循环”);
CCArgs.向后推_(“-x”);
CCArgs.push_back(“c++”);
CCArgs.向后推开(“-o”);
CCArgs.推回(“测试o”);
CCArgs.推回(“test.cpp”);
拥有PTR CI(新编辑职业);
编译器职业::CreateFromArgs(*CI,
const_cast(CCArgs.data()),
const_cast(CCArgs.data())+
CCArgs.size(),
诊断);
//创建一个编译器实例来处理实际工作。
编者的声音;
Clang.setInvocation(CI.take());
//创建编译器实际诊断引擎。
Clang.createDiagnostics();
如果(!Clang.hasDiagnostics())
返回1;
拥有PTR法案(新排放法案);
如果(!叮当声执行(*Act))
返回1;
返回0;
}

如果指定triple,它是否会与
llvm::InitializeNativeTarget()的内容相冲突你做了什么?