Premake not working with g++ on Linux?

698 views Asked by At

Premake Version: 4.3 (downloaded here)

When running make on Linux, I get the following error: "g++: x86_64: No such file or directory." Upon removing the $(ARCH) from CFLAGS, make works fine.

Red Hat:

  • System Version ("cat /etc/redhat-release"): Red Hat Enterprise Linux Server release 6.5 (Santiago)
  • Kernel Version ("uname -r"): 2.6.32-431.11.2.el6.x86_64
  • "uname -p": x86_64
  • "uname -m": x86_64
  • C++ compiler: g++

Ubuntu:

  • System Version ("cat /etc/issue"): Ubuntu 12.04.5 LTS
  • Kernel Version ("uname -r"): 3.2.0-67-generic
  • "uname -p": x86_64
  • "uname -m": x86_64
  • C++ compiler: g++

I've also run the same program successfully on Mac.

Mac:

  • System Version: OS X 10.10 (14A389)
  • Kernel Version: Darwin 14.0.0
  • "uname -p": i386
  • "uname -m": x86_64
  • C++ compiler: clang

premake4.lua

solution "Hello"
  configurations { "Debug", "Release" }

    configuration { "Debug" }
      defines { "_DEBUG", "DEBUG" }
      flags   { "Symbols", "ExtraWarnings" }

    configuration { "Release" }
      defines { "NDEBUG" }
      flags   { "Optimize" }

  project "hello"

    kind "ConsoleApp"
    language "C++"
    location "."

    files { "hello.cpp" }

hello.cpp is the standard hello world program.

Is there a reason for the $(ARCH)? From looking at the documentation for both clang and g++, it does not seem like providing just the architecture type without a flag is a compiler option. Am I missing something?

1

There are 1 answers

0
J. Perkins On BEST ANSWER

That $(ARCH) variable has been in the generated makefiles for quite some time, but it appears it has outlived its usefulness. I have removed it for now; if there is still a need to inject flags into the build we can find a safer name.

You can get a fixed version from the Premake 4.x BitBucket repository.