저는 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
나머지 세부 사항은 자동으로 수행됩니다.