2014-11-18 1 views
0

미리보기 버전 : 4.3 (here)Linux에서 g ++로 Premake가 작동하지 않습니까?

Linux에서 make를 실행할 때 "g ++ : x86_64 : 해당 파일이나 디렉토리가 없습니다."라는 오류가 발생합니다. CFLAGS에서 $ (ARCH)를 제거하면 make가 잘 동작합니다.

레드햇 :

  • 시스템 버전 ("고양이의/etc/레드햇 릴리스") : 레드햇 엔터프라이즈 리눅스 서버 6.5 (산티아고)
  • 커널 버전 ("끝나면 uname -r")를 출시 : 2.6.32-431.11.2.el6.x86_64
  • "UNAME -p"x86_64에
  • "UNAME -m"x86_64에
  • C++ 컴파일러 : g ++

우분투 :

  • 시스템 버전 ("고양이의/etc/문제") : 우분투 12.04.5 LTS
  • 커널 버전 ("끝나면 uname -r") : 3.2.0-67 제네릭
  • "끝나면 uname -p"x86_64에
  • "끝나면 uname -m"x86_64에
  • C++ 컴파일러 : g ++

나는 또한 Mac에서 성공적으로 같은 프로그램을 실행했습니다.

맥 :

  • 시스템 버전 : OS X 10.10 (14A389)
  • 커널 버전 : 다윈 14.0.0
  • "끝나면 uname -p"I386
  • "끝나면 uname -m" x86_64에
  • C++ 컴파일러 : 그 소리

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는 표준 hello world 프로그램입니다.

$ (ARCH)에 대한 이유가 있습니까? clang과 g ++에 대한 문서를 살펴보면 컴파일러 옵션이 플래그없이 아키텍처 유형 만 제공하는 것처럼 보이지 않습니다. 내가 놓친 게 있니?

+0

아마도 버그 일 수 있습니다. ARCH 환경 변수를 정의하지 않고 premake를 실행 해보십시오. –

+0

감사합니다 .n.m.! 그게 효과가 있지만, 해결 방법처럼 보입니다. 쉘 스크립트 호출을 내 premake4.lua 스크립트에 추가하여 설정을 해제하거나 새 셸을 열 때마다 수동으로 설정을 해제 할 수 있지만 이러한 옵션은 문제에 대한 임시 해결책처럼 보입니다. –

+0

실제로 해결 방법입니다. 사전 관리인에게 버그를 신고 하시겠습니까? –

답변

0

$ (ARCH) 변수는 꽤 오랫동안 생성 된 메이크 파일에 있었지만 유용성이 오래 남아있는 것 같습니다. I have removed it for now; 빌드에 플래그를 삽입해야하는 경우 더 안전한 이름을 찾을 수 있습니다.

Premake 4.x BitBucket repository에서 고정 버전을 얻을 수 있습니다.

+0

감사합니다. @starkos! –