linux - "Exec format error"运行由 g++ 创建的二进制文件

标签 linux bash makefile

我的 QTCreator 生成的 Makefile 有问题。一切正常,除了当我尝试为自己的测试创建一个新的可执行文件时,我的终端显示:bash: ./RunTests: cannot execute binary file: Exec format error

这是我的 MakeFile 规则的样子:

TESTS: ../WannaBeRPG/testes.cpp ../WannaBeRPG/hero.h ../WannaBeRPG/charinterface.h
    $(CXX) -c $(CXXFLAGS) $(INCPATH) -o RunTests ../WannaBeRPG/testes.cpp

标志是:

CXX = g++
CXXFLAGS = -pipe -g -std=gnu++0x -Wall -W -fPIC $(DEFINES)
INCPATH = -I../WannaBeRPG -I. -I/usr/lib64/qt5/mkspecs/linux-g++
DEFINES = -DQT_QML_DEBUG

如果这有帮助的话,这里是我的 testes.cpp 文件:

#include <gtest/gtest.h>
#include "hero.h"

TEST(teee, HPTEST)
{
    Hero myHero("Hika",150,100,0,0,0,0,0,0,0);
    EXPECT_EQ(100,myHero.getHP());
}

int main_tests(int argc, char* argv[])
{
    testing::InitGoogleTest(&argc,argv);
    return RUN_ALL_TESTS();
}

我正在使用 Fedora。 有什么想法为什么会这样吗?这个 Makefile 的主要 exec 工作得很好。

最佳答案

g++-c 参数告诉它不要链接你的二进制文件。因此,您的输出文件是目标文件而不是可执行文件。

关于linux - "Exec format error"运行由 g++ 创建的二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42015121/

相关文章:

linux - * 在 MidnightCommander 的 Linux 文件名之前

bash - awk 或条件

Bash 脚本双引号

makefile - Sublime Text 构建系统,只有 "make"

linux - grep 精确单词匹配 (-w) 不适用于文本文件中的文件路径

linux - Gatttool 非交互模式 --char-write

linux - 从输入中提取 ID

bash - 用于 awk 打印除以 1024 的值的 shell 脚本

c - 如何基于 Makefile 构建 iPhone 静态库?

bash - 使用变量创建命令