make는 CXXFLAGS를 만드는 방법을 모릅니다. 멈추다

make는 CXXFLAGS를 만드는 방법을 모릅니다. 멈추다

저는 FreeBSD를 처음 접하고 소스에서 코드를 컴파일하는 중입니다. 도움을 주시면 대단히 감사하겠습니다. 컴파일하려고하는데빠른 문자소스에서. make 명령을 실행하면 다음 메시지가 반환됩니다.

make don't know how to make CXXFLAGS. Stop

다음은 Makefile의 처음 몇 줄입니다(전체 파일은 위에서 언급한 fastText github 저장소에서 찾을 수 있습니다).

CXX = c++
CXXFLAGS = -pthread -std=c++0x
OBJS = args.o dictionary.o matrix.o vector.o model.o utils.o
INCLUDES = -I.

opt: CXXFLAGS += -O3 -funroll-loops
opt: fasttext

debug: CXXFLAGS += -g -O0 -fno-inline
debug: fasttext

FreeBSD 버전: 10.3
FreeBSD clang 버전: 3.4.1
gmake 버전: 4.1_2

답변1

귀하의 질문은 다음과 같습니다.

opt: CXXFLAGS += -O3 -funroll-loops

BSD가 make명예를 갖고 있지만일부 +=이는 일반적으로 GNU make기능입니다. FreeBSD에서 GNU는 make(거의 항상) 다음과 같이 사용 가능합니다.포트,그것의 이름은gmake.

다음을 사용하여 명령줄에서 이를 확인할 수 있습니다.

make --version

인쇄

usage: make [-BeikNnqrstWwX] 
            [-C directory] [-D variable] [-d flags] [-f makefile]
            [-I directory] [-J private] [-j max_jobs] [-m directory] [-T file]
            [-V variable] [variable=value] [target ...]

(GNU 제작 아님)

gmake --version

인쇄

GNU Make 3.82
Built for amd64-portbld-freebsd10.0
Copyright (C) 2010  Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

(GNU 프로덕션).

대부분의 메이크파일은 이러한 버전 중 하나를 실행하는 것이 MAKE설정되는 변수에 따라 달라지도록 작성되며, (예를 들어) 연속 메이크파일이 호출되면 "그냥 작동"합니다. 그래서 당신은 일반적으로 할 수 있습니다

gmake

나머지 세부 사항은 자동으로 수행됩니다.

관련 정보