Chi*_*ina -4 c++ linux gcc header-files
我刚用g ++编译了我的源代码:
g++ -o exec Test.hpp
Run Code Online (Sandbox Code Playgroud)
这不会生成可执行文件,即使我使用chmod使其可执行,我也会收到此错误.
bash: ./exec: cannot execute binary file: Exec format error
Run Code Online (Sandbox Code Playgroud)
这是我的来源:
#include <iostream>
class Test {
void main() {
std::cout << "testing" << std::endl;
}
};
Run Code Online (Sandbox Code Playgroud)
我正在使用Manjaro,它不是虚拟机.有什么建议吗?
GCC通过扩展名识别文件的内容/类型,并且".hpp"被假定为头文件(1).编译头文件会生成一个二进制和不可执行的预编译头文件.
解决方案是将文件重命名为".cpp"(2)或添加"-x c ++"
g++ -o exec Test.cpp
g++ -o exec -x c++ Test.cpp
Run Code Online (Sandbox Code Playgroud)
(1)参见https://gcc.gnu.org/onlinedocs/gcc-3.0/gcc_3.html#SEC5 "对于任何给定的输入文件,文件名后缀确定完成了哪种编译:"
(2)或.cc,.cp,.cxx,.cpp,.c ++或.C中的任何一个,参见(1)