imagick-v3.1.0RC2
CentOS 5.5에 패키지를 설치하고 있습니다 . ImageMagick 6.7.9-9도 설치했는데 make
단계에 문제가 있습니다.
문제는 포함된 파일을 찾을 수 없다는 것입니다.
/usr/local/include/ImageMagick/wand/magick/accelerate.h:25:31: 오류: Magick/morphology.h: 해당 파일 또는 디렉터리가 없습니다.
폴더를 복사하면 magick
찾을 /usr/local/include/ImageMagick/wand/magick/magick
수 있지만 다른 파일이 누락되었다는 메시지가 표시되므로 magic/xxx.h
계속해서 Magick를 복사해야 합니다. 이 문제를 해결할 수 있는 방법이 있을까요?
심볼릭 링크를 생성했지만 25번째 줄의 /ImageMagick/wand/magick
ln -s ../magick magick
파일 내부에 여전히 동일한 문제가 있습니다 .accelerate.h
#include <magick/random_.h>
나도 해보았어
make --include-dir=/usr/local/include/ImageMagick/ --include-dir=/usr/local/include/ImageMagick` and `make -I /usr/local/include/ImageMagick/ -I /usr/local/include/ImageMagick
make -n
나는 make가 실행할 모든 명령을 표시하기 위해 실행한 다음 -I /usr/local/include/ImageMagick/ -I /usr/local/include/ImageMagick
명령을 추가하고 수동으로 하나씩 실행했습니다.
더 빠른 방법은 없을까요?
수정, 해결됨:
비결은 파일이 어디에 있는지 찾은 find / --name "missing.file"
다음 Make ie를 실행한 폴더에 심볼릭 링크를 추가하는 것이 었습니다./usr/src/imagick-v3.1.0RC2/
ln -s usr/local/include/ImageMagick/magick magick
그리고
ln -s usr/local/include/ImageMagick/wand wand
답변1
-I/usr/local/include/ImageMagick/wand
예 를 들어, 지팡이 디렉토리까지 -I를 추가해 보십시오.-I/usr/local/include/ImageMagick/wand/magick
답변2
make
죄송합니다. 완전히 오해하신 것 같습니다 . 나는 이 질문에 GNU make에 대해 이야기하고 있다고 가정하고 대답하고 있습니다. 하지만 일부 사람들은 다른 버전의 존재를 완전히 부인하는 것 같습니다.
다음 두 줄의 코드로 얻을 수 있는 작업은 다음과 같습니다.
make --include-dir=/usr/local/include/ImageMagick/ --include-dir=/usr/local/include/ImageMagick
make -I /usr/local/include/ImageMagick/ -I /usr/local/include/ImageMagick
단지 이러한 인수를 에 전달하는 것뿐입니다 make
. 합법적이지만 프로세스가 호출하는 컴파일러에서 사용하는 포함이 아니라 / Makefile
에 포함될 포함을 제공합니다 .GNUmakefile
make
이를 달성하기 위한 가장 좋은 실행 방법은 다음과 같습니다.
make -npf /dev/null
(파이프라인이 less
좌우로 들어갑니다)
기본 규칙을 이해합니다. C 또는 C++ 컴파일러가 이러한 파일을 찾도록 하고 make 프로세스가 기본 규칙 및/또는 규칙을 사용한다고 가정하면 다음 변수 중 하나를 설정할 수 있어야 합니다.
CPPFLAGS
(C 전처리기 플래그)CFLAGS
(C 컴파일러 플래그)CXXFLAGS
(C++ 컴파일러 플래그)
구체적인 내용을 보시려면당신의 make
파일 체크아웃
make -np
# or ...
make -npf Makefile
기본 규칙이 재정의된 경우.
이는 프로세스의 내부 구조를 기반으로 make
컴파일러가 올바른 위치를 가리키는 데 도움이 됩니다 . 예를 들어 GCC로 컴파일하는 경우그리고링크가 CPPFLAGS
제대로 작동해야 합니다. 귀하의 예에서는 make
다음과 같이 호출 하고 싶습니다 .
make CPPFLAGS="-I /usr/local/include/ImageMagick/ -I /usr/local/include/ImageMagick"
install
기본 대상뿐만 아니라 자신의 이름을 가진 대상 도 사용하고 싶다고 가정해 보겠습니다 .
make CPPFLAGS="-I /usr/local/include/ImageMagick/ -I /usr/local/include/ImageMagick" install
make instead
...또 다른 옵션은 명령줄에서 변수를 환경 변수로 전달하는 것입니다 .
CPPFLAGS="-I /usr/local/include/ImageMagick/ -I /usr/local/include/ImageMagick" make
...비슷한 방법으로 정의( -DNAMEOFDEFINE=VALUE
)를 설정할 수 있습니다.