0

私は、分離されたときにコンソールでそれぞれが完全に機能するコマンドをいくつか持っています。作業を楽にするために、それらをまとめてメイクファイルにしました。

topojsoning: levels.json
    topojson --id-property none -p name=elev -o final.json levels.json

geojsoning: contours.shp
    ogr2ogr -f GeoJSON -where "elev < 10000" levels.json contours.shp

shaping: crop.tif
    gdal_contour -a elev -fl -1000 -500 -200 -50 0 50 100 200 500 1000 2000 4000 6000 crop.tif contours.shp

boxing: ETOPO1_Ice_g_geotiff.tif
    gdal_translate -projwin -005.48 051.30 10.00 041.00 ETOPO1_Ice_g_geotiff.tif crop.tif
    # ulx uly lrx lry  // W N E S // -005.48 051.30 10.00 041.00

unzip: ETOPO1.zip
    unzip ETOPO1.zip
    touch ETOPO1_Ice_g_geotiff.tif

download:
    curl -o ETOPO1.zip 'http://www.ngdc.noaa.gov/mgg/global/relief/ETOPO1/data/ice_surface/grid_registered/georeferenced_tiff/ETOPO1_Ice_g_geotiff.zip'

clean:
    rm `ls | grep -v 'zip' | grep -v 'Makefile' `

それでも、メイクファイル内にある場合、次のエラーが発生します。

make: *** No rule to make target ? `levels.json', needed by `topojsoning'.  Stop.

このエラーはどういう意味ですか? それを機能させる方法は?小さなタイプミスをしましたか?

4

1 に答える 1

0

完全な修正があります:

# topojsoning: 
final.json: levels.json
    topojson --id-property none -p name=elev -o final.json levels.json

# geojsoning: 
levels.json: contours.shp
    ogr2ogr -f GeoJSON -where "elev < 10000" levels.json contours.shp

# shaping: 
contours.shp: crop.tif
    gdal_contour -a elev -fl -1000 -500 -200 -50 0 50 100 200 500 1000 2000 4000 6000 crop.tif contours.shp

# boxing: 
crop.tif: ETOPO1_Ice_g_geotiff.tif
    gdal_translate -projwin -005.48 051.30 10.00 041.00 ETOPO1_Ice_g_geotiff.tif crop.tif
    # ulx uly lrx lry  // W N E S // -005.48 051.30 10.00 041.00

# unzip:
ETOPO1_Ice_g_geotiff.tif: ETOPO1.zip
    unzip ETOPO1.zip
    touch ETOPO1_Ice_g_geotiff.tif

# download:
ETOPO1.zip:
    curl -o ETOPO1.zip 'http://www.ngdc.noaa.gov/mgg/global/relief/ETOPO1/data/ice_surface/grid_registered/georeferenced_tiff/ETOPO1_Ice_g_geotiff.zip'

clean:
    rm `ls | grep -v 'zip' | grep -v 'Makefile' `

メイクファイルの構文を誤用していました。各ステップをプロセス名(つまりtopojsoning、悪い)で開始していました:

processName: sourcefile
    command

ターゲットファイルから開始する必要があります(final.json、良い):

targetfile: sourcefile
    command
于 2013-08-15T04:40:19.197 に答える