PDA

View Full Version : نحوه اجرای برنامه gracereadsw برای استفاده از داده های ماهواره grace



barnamenevisforme
شنبه 07 آذر 1394, 22:46 عصر
با عرض سلام خدمت دوستان برنامه نویس source برنامه ای به زبان c موجود هست که متاسفانه بنده موفق به ساخت exe و اجرای اون نشدم ممنون میشم در مورد نحوه کامپایل این برنامه راهنمایی بفرمایید در ضمن این برنامه مربوط به استفاده ازاطلاعات ماهواره grace‌ هست. لینک برنامه http://isdc.gfz-potsdam.de/index.php?name=UpDownload&req=getit&lid=542

rahnema1
یک شنبه 08 آذر 1394, 01:24 صبح
سلام
توی لینوکس و یا در ویندوز با cygwin می شه کامپایل کرد
همچنین با mingw هم میشه در ویندوز کامپایل کرد که لازمه کمی در makefile تغییر داده بشه
با کامپایلرهای دیگه هم طبیعتا باید بشه
این فایلی که گذاشتم با Mingw کامپایل شده

barnamenevisforme
یک شنبه 08 آذر 1394, 16:25 عصر
سلام دوست عزیز
از راهنمایی شما متشکرم.
اما از بین این همه برنامه ای که در پوشه bin برنامه mingw هست. کدوم برای کامپایل استفاده میشه و ممکنه بفرمایید چه تغییراتی در makefile دادید؟

rahnema1
یک شنبه 08 آذر 1394, 23:38 عصر
ببینید توی فولدر lib یه سری فایلها هست که باید کامپایل بشه که یک کتابخانه با پسوند a. درست بشه بعد اون دو برنامه با این کتابخونه باید لینک بشن که محتویات makefile هم همین را میگه
من با استفده از شل msys وارد فولدر برنامه شدم و دستور mingw32-make را زدم
داخل هر دو تا makefile ( یکی تو فولدر اصلی و یکی هم تو فولدر lib )هم هر جا make باشه تبدیل کردم به mingw32-make
چند تا تغییر دیگه هم دادم
فقط اصول اینها را بدونید که توی پاراگراف اول گفتم دیگه بقیه راه را خودتون جلو می رید

amirtork
دوشنبه 09 آذر 1394, 11:15 صبح
سلام،
من برنامه رو Make کردم، ولی نمیدونم الان باید چیکار کنم!
وقتی میخوام verfry-instalation رو اجرا کنم، با خطای وجود نداشتن فولدر/bin/csh: مواجه میشم!
یک مقدار گیج شدم، میشه بیشتر راهنمایی کنید؟

rahnema1
دوشنبه 09 آذر 1394, 11:33 صبح
سلام،
من برنامه رو Make کردم، ولی نمیدونم الان باید چیکار کنم!
وقتی میخوام verfry-instalation رو اجرا کنم، با خطای وجود نداشتن فولدر/bin/csh: مواجه میشم!
یک مقدار گیج شدم، میشه بیشتر راهنمایی کنید؟
سلام
ببینید برای اینکه این makefile کامل اجرا بشه نیاز هست که یک شل به نام csh در سیستم وجود داشته باشه که در ویندوز نیست
چونکه در makefile اول دستور زیر وجود داره:

./MakeLinkTime > LinkTime.c

توی فولدر نگاه کنید می بینید اسکریپتی به نام MakeLinkTime وجود داره که فقط با مفسر csh اجرا می شه و نتایج کارش را در داخل فایلی به نام LinkTime.c می ریزه این LinkTime.c هم هیچ خاصیتی نداره مگه اینه زمان لینک برنامه را فقط نشون میده که با نگاه کردن در داخل MakeLinkTime می تونید مشاهده کنید
بنابراین به راحتی می تونیم یه دونه LinkTime.c الکی خودمون درست کنیم به صورت زیر

# include <stdio.h>
# include <string.h>
# include <inttypes.h>

void LinkTime(char *label)
{
}

بعد داخل makefile اون خط را به صورت زیر کامنت می کنیم که اجرا نشه ( یا اصلا پاک می کنیم)

#./MakeLinkTime > LinkTime.c

بعد دوباره make کنید درست می شه
البته من اومده بودم در makefile اینها را هم تنظیم کرده بودم

CFLAGS = -O2
CC = i686-w64-mingw32-gcc.exe

و خطوط 55 و 58 را هم به صورت زیر تغییر داده بودم

$(CC) $(CFLAGS) -c LinkTime.c
$(CC) $(CFLAGS) $< LinkTime.o lib/lib.a -lm -o $@

که شاید چندان ضروری هم نباشه
توی makefile دوم هم به همین صورت شده بود
فکر کنم همینها بود
اینم makefile ها