一江春水向東流

          做一個有思想的人,期待與每一位熱愛思考的人交流,您的關注是對我最大的支持。

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            44 隨筆 :: 139 文章 :: 81 評論 :: 0 Trackbacks

          Makefile 學習筆記
          ??? 五一期間在學校呆著是在無聊,關于那些數(shù)據(jù)挖掘和算法的理論看的也實在是費勁,突然想練習實踐一下,因為不會makefile編寫的緣故,以前寫程序時只能放到一個文件里,好了,現(xiàn)在開始了。
          ??? 又因為我畢業(yè)設計做的的是一個嵌入式網(wǎng)關,系統(tǒng)用的是uClinux,里面要用的一個WEB服務器,當然要支持CGI了,初步打算用boa,看看boa源碼,不少啊,在看makefile還挺復雜,要用configure的,我在linux下.configure 然后後make了一下,錯誤一大串,還都是鏈接是出錯了,象我這樣的makefile菜鳥一時搞定,可能行不答了,又看了看user目錄下的應用程序,還有一個httpd,這個我熟悉,以前看過,只有兩個文件,好的,那這個練習了,里面現(xiàn)成的Makefile當然是不好使了。
          寫一個如下的makefile
          #makefile
          CC = gcc
          EXEC = httpd
          OBJS = httpd.o copy.o
          HTTPD_DOCUMENT_ROOT = /home/httpd
          CFLAGS += -DHTTPD_DOCUMENT_ROOT = \"$(HTTPD_DOCUMENT_ROOT)\"
          all:$(EXEC)
          $(EXEC):$(OBJS)
          ??????? $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LDLIBS)
          .c.o:
          ??????? $(CC) $(CFLAGS) -c $<

          clean:
          ??????? -rm -f $(EXEC) *.elf *.gdb *.o
          多少有參考原Makefile,make時會有錯誤,多make幾次就成功了,運行./httpd
          ?? 這里的HTTP_DOCUMENT_ROOT這個參數(shù)不知怎么回事,我猜測是傳到文件里的參數(shù),但是我在你打印時就會有段錯誤,程序運行後,在瀏覽器里輸入IP,在瀏覽器里列出了文件系統(tǒng)的目錄,可以看是根目錄,不對啊,按照上面?zhèn)魅氲膮?shù)因該是/home/httpd才對的,看看httpd.c的源碼
          ? signal(SIGCHLD, SIG_IGN);
          ? signal(SIGPIPE, SIG_IGN);
          ? signal(SIGALRM, sigalrm);

          ? chroot(HTTPD_DOCUMENT_ROOT);
          ? //chdir("/");
          ? //chdir(HTTPD_DOCUMENT_ROOT);
          ? chdir("/home/httpd");

          ? if (argc > 1 && !strcmp(argv[1], "-i")) {
          原來這里將目錄改變到根目錄,怎么這么做呢,看來這代碼真的很有問題,難怪我編譯uClinux是老是出現(xiàn)很低級的錯誤。改成chdir(HTTPD_DOCUMENT_ROOT);在打開瀏覽器測試,服務器根目錄在程序運行的目錄,不是/home/httpd,打印就是段錯誤,多半是vdocument_root沒有傳進來,估計是makefile寫的還有些問題。如是直接改成chdir("/home/httpd"),這下到了我存放網(wǎng)頁的目錄了。寫了一個index.htm測試網(wǎng)頁放到目錄下,網(wǎng)頁打開了。
          今天makefile 實踐就到此了,下回就把boa給編譯了。

          參考文章:MAKEFILE的編寫(轉載)

          posted on 2007-05-03 10:47 allic 閱讀(1489) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 库伦旗| 萍乡市| 鹿泉市| 凯里市| 新密市| 大洼县| 张家川| 阳西县| 米林县| 淮北市| 新密市| 隆昌县| 六枝特区| 达拉特旗| 香河县| 桂林市| 什邡市| 邳州市| 平邑县| 桐城市| 潞城市| 元江| 奎屯市| 惠水县| 湖口县| 西吉县| 岳池县| 通州市| 彩票| 青川县| 郑州市| 望谟县| 新巴尔虎右旗| 中江县| 五常市| 仙居县| 淮阳县| 溆浦县| 荥经县| 沐川县| 丰顺县|