【发布时间】:2021-10-21 17:30:36
【问题描述】:
我是 clang++ 编译器标志的新手。我有一个关于编译的问题。这是我的cmd:
clang++ -I ../llvm-project/llvm/include -I ../llvm-project/clang/include
-I ../llvm-project/build/tools/clang/include -I ../llvm-project/build/include
-O3 -c $(llvm-config-7 --cxxflags)
projectToTestHeadersBuilding.cpp -o projectToTestHeadersBuilding
我收到错误:
./projectToTestHeadersBuilding: cannot execute binary file: Exec format error
执行后我有projectToTestHeadersBuilding 文件。但我无法运行可执行文件。您能帮我了解如何获取可执行文件,以便我可以使用./projectToTestHeadersBuilding 运行它吗?
【问题讨论】:
-
这能回答你的问题吗? how to run the .o file after make
-
你好,不,它没有。我没有可执行文件。我只得到 .o 文件。 -bash: ./projectToTestHeadersBuilding: 无法执行二进制文件:执行格式错误
-
-c文件指定 clang 应该编译共享对象库而不是可执行文件。您正在编译一个共享对象。共享对象不可执行。 -
@h0r53 -
-c表示你得到一个对象,而不是共享对象。 -
该链接确实回答了您的问题,您只需阅读所有答案。此外,这些标志并不是 clang 独有的。 gcc 也会遇到这个问题。