tente adicionar -I até o diretório da varinha como -I/usr/local/include/ImageMagick/wand
ou -I/usr/local/include/ImageMagick/wand/magick
Estou instalando o imagick-v3.1.0RC2
package no CentOS 5.5. Eu tenho o ImageMagick 6.7.9-9 instalado e tenho um problema na etapa make
.
O problema é que não é possível encontrar o arquivo incluído:
/usr/local/include/ImageMagick/wand/magick/accelerate.h:25:31: error: magick/morphology.h: No such file or directory
Se eu copiar a pasta magick
em /usr/local/include/ImageMagick/wand/magick/magick
então ele vai achar, mas vai dizer que algum outro arquivo está faltando em magic/xxx.h
então eu tenho que copiar magick novamente e de novo deve haver alguma maneira de contornar?
Eu criei um link simbólico em /ImageMagick/wand/magick
ln -s ../magick magick
, mas ele ainda tem o mesmo problema dentro do arquivo accelerate.h
na linha 25, ele tem #include <magick/random_.h>
Eu também tentei fazer
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
Acabei executando make -n
para mostrar todos os comandos que são executados e, em seguida, adicionei -I /usr/local/include/ImageMagick/ -I /usr/local/include/ImageMagick
a eles e executamos um por um manualmente.
Não há caminho mais rápido?
EDITAR, RESOLVIDO:
O truque era encontrar onde o arquivo está com find / --name "missing.file"
e, em seguida, adicionar os links simbólicos na pasta em que eu executo Make, por exemplo, /usr/src/imagick-v3.1.0RC2/
ln -s usr/local/include/ImageMagick/magick magick
e
ln -s usr/local/include/ImageMagick/wand wand
tente adicionar -I até o diretório da varinha como -I/usr/local/include/ImageMagick/wand
ou -I/usr/local/include/ImageMagick/wand/magick
Sinto muito, mas você parece entender mal o make
completamente. Eu suponho que estamos falando sobre o GNU make para esta resposta, embora algumas pessoas parecem negar a existência de sabores alternativos.
O que você consegue com essas duas linhas:
make --include-dir=/usr/local/include/ImageMagick/ --include-dir=/usr/local/include/ImageMagick
make -I /usr/local/include/ImageMagick/ -I /usr/local/include/ImageMagick
é que você passa esses parâmetros para make
. Bem, isso é legal e tudo mais, mas inclui inclusões no Makefile
/ GNUmakefile
, não nas inclusões usadas por qualquer compilador chamado pelo processo make
.
Para conseguir isso, o melhor é executá-lo como:
make -npf /dev/null
(canalize para less
ou mais)
para ter uma ideia das regras padrão. Supondo que você queira que o compilador C ou C ++ localize esses arquivos e supondo que o processo make use as regras e / ou convenções padrão, você deve ser capaz de definir uma das seguintes variáveis:
CPPFLAGS
(sinalizadores de pré-processador C) CFLAGS
(sinalizadores do compilador C) CXXFLAGS
(sinalizadores do compilador C ++) Para ver os detalhes exatos do seu make
check-out
make -np
# or ...
make -npf Makefile
caso as regras padrão sejam redefinidas.
Dependendo das partes internas do processo make
, isso ajudará a apontar o compilador para o local correto. Por exemplo, se o GCC for usado para compilação e , a vinculação de CPPFLAGS
deve funcionar bem. Em seu exemplo, você gostaria de invocar make
como:
make CPPFLAGS="-I /usr/local/include/ImageMagick/ -I /usr/local/include/ImageMagick"
assumindo que você não quer apenas usar o destino padrão, mas um destino chamado install
que você faria:
make CPPFLAGS="-I /usr/local/include/ImageMagick/ -I /usr/local/include/ImageMagick" install
... e outra alternativa é passar a variável como variável de ambiente para make instead
de passar na linha de comando:
CPPFLAGS="-I /usr/local/include/ImageMagick/ -I /usr/local/include/ImageMagick" make
... de maneira semelhante, você pode definir define ( -DNAMEOFDEFINE=VALUE
).