“exec格式错误”运行由g ++创建的二进制文件

时间:2017-02-03 01:06:41

标签: 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工作正常。

1 个答案:

答案 0 :(得分:0)

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