MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2024-05-23, 19:07

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 4 篇文章 ] 
發表人 內容
文章發表於 : 2008-08-27, 07:50 
離線

註冊時間: 2008-03-24, 18:45
文章: 46
以下是我的系統資訊
作業系統: Windows XP SP3
GCC編譯器版本: Tdm 版 4.3.0
函式庫: w32api mingw-runtime
仿 Unix Shell 環境: Msys

編譯錯誤訊息如下:
代碼:
gcc -mno-cygwin -o d:/mozilla/mozilla/builds/nss/shlibsign.o -c -O2 -mno-cygwin -mms-bitfields -mnop-fun-dllimport -DXP_PC -DSHLIB_SUFFIX=\"dll\" -DSHLIB_PREFIX=\"\" -UDEBUG -U_DEBUG -DNDEBUG -DWIN32 -D_WINDOWS -D_X86_ -DWIN95 -DNSS_ENABLE_ECC -DUSE_UTIL_DIRECTLY -Id:/mozilla/mozilla/builds/dist/include/nspr -Id:/mozilla/mozilla/builds/dist/include  -Id:/mozilla/mozilla/builds/dist/public/nss -Id:/mozilla/mozilla/builds/dist/private/nss -Id:/mozilla/mozilla/builds/dist/include  -Id:/mozilla/mozilla/builds/dist/public/dbm -Id:/mozilla/mozilla/builds/dist/public/seccmd  shlibsign.c
make[5]: *** No rule to make target `d:/mozilla/mozilla/builds/dist/lib/plc4.dll.a', needed by `d:/mozilla/mozilla/builds/nss/shlibsign.exe'.  Stop.
make[5]: Leaving directory `/d/mozilla/mozilla/security/nss/cmd/shlibsign'
make[4]: *** [libs] Error 2
make[4]: Leaving directory `/d/mozilla/mozilla/builds/security/manager'
make[3]: *** [libs_tier_toolkit] Error 2
make[3]: Leaving directory `/d/mozilla/mozilla/builds'
make[2]: *** [tier_toolkit] Error 2
make[2]: Leaving directory `/d/mozilla/mozilla/builds'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/d/mozilla/mozilla/builds'
make: *** [build] Error 2


我想最關鍵的錯誤訊息應該是:
代碼:
make[5]: *** No rule to make target `d:/mozilla/mozilla/builds/dist/lib/plc4.dll.a', needed by `d:/mozilla/mozilla/builds/nss/shlibsign.exe'.  Stop.


打算使用 MinGW 編譯最佳化版本的 Firefox。
我已經解決了前面幾個問題了,就是這個不知道如何解決。

以下是我的 .mozconfig
代碼:
. $topsrcdir/browser/config/mozconfig
CC="gcc"
CXX="g++"
CPP="cpp"
CXXCPP="cpp"
AS="as"
LD="ld"

mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/builds
mk_add_options PROFILE_GEN_SCRIPT='$(PYTHON) $(MOZ_OBJDIR)/_profile/pgo/profileserver.py'
ac_add_options --disable-accessibility
ac_add_options --enable-optimize="-O2"
mk_add_options MOZ_CO_PROJECT=browser
ac_add_options --disable-debug
ac_add_options --disable-tests
ac_add_options --enable-official-branding
ac_add_options --disable-activex
ac_add_options --disable-accessibility
ac_add_options --disable-installer
ac_add_options --enable-svg
ac_add_options --disable-vista-sdk-requirements
ac_add_options --disable-crashreporter
ac_add_options --disable-updater
ac_add_options --disable-debug
ac_add_options --with-windows-version=501
ac_add_options --disable-tests


有誰可以幫幫忙解決這個問題。


最後由 jaywang0.tw 於 2008-09-07, 07:56 編輯,總共編輯了 1 次。

回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2008-08-27, 08:08 
離線
頭像

註冊時間: 2003-10-27, 02:07
文章: 380
來自: Taipei, Taiwan
Mozilla不建議使用VS Express 2008以外的環境來編譯3.0以後的Firefox歐,
另外"d:/mozilla/mozilla/builds/dist/lib/plc4.dll"才是正常的target, 所以
看來是個makefile的問題,

代碼:
make[5]: *** No rule to make target `d:/mozilla/mozilla/builds/dist/lib/plc4.dll.a', needed by `d:/mozilla/mozilla/builds/nss/shlibsign.exe'.  Stop.


是說"d:/mozilla/mozilla/builds/nss/shlibsign.exe" 需要
"d:/mozilla/mozilla/builds/dist/lib/plc4.dll.a" 這個library,
但是在windows下其實是"plc4.dll"而不是"plc4.dll.a", 最簡單
的修法是, 在makefile裡加一條rule讓plc4.dll的source所link
出的target為plc4.dll, 不過根本的問題事裡沒有正確config你的
build system吧, 所以make還認為他在linux下, 不然就是build
system根本沒考慮到你的這種環境組態, 或是不支援你的這種環
境組態

_________________
Meetings: Because none of us is as dumb as all of us.

- Firefox embedded化商業顧問中
- Linux embedded化商業顧問中
- Linux 系統顧問中
- 系統整合的雜七雜八顧問中
- Android開發中: 正在跟ARM的EGLIBC纏鬥中 .....
- Windows Mobile開發中: 就讓WM走入歷史吧 !


回頂端
Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-TW; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2008-08-27, 09:55 
離線

註冊時間: 2008-03-24, 18:45
文章: 46
Dark Shenada 寫:
不過根本的問題事裡沒有正確config你的
build system吧, 所以make還認為他在linux下, 不然就是build
system根本沒考慮到你的這種環境組態, 或是不支援你的這種環
境組態


意思是我的 .mozconfig 設定錯了??? 那要怎麼設定才能讓 build system 知道我是在 Windows 下。

Dark Shenada 寫:
最簡單
的修法是, 在makefile裡加一條rule讓plc4.dll的source所link
出的target為plc4.dll


我對於 Makefile 不太懂,我不太會修改 Makefile 檔。請問要怎麼修改?
看來我真的該學 makefile 的語法了。

如果我把 plc4.dll 複製一份成為 plc4.dll.a 這樣可以嗎?還是要建立空檔案為 plc4.dll.a 讓 build system 認為 plc4.dll.a 這個檔案存在。


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2008-08-27, 10:21 
離線

註冊時間: 2008-03-24, 18:45
文章: 46
看了 Makefile 之後,發現應該是 configure 的問題
果然
我發現在 configure 有一個地方有點問題
以下是 configure 的片段
代碼:
    if test -n "$GNU_CC"; then
        CC="$CC -mno-cygwin"
        CXX="$CXX -mno-cygwin"
        CPP="$CPP -mno-cygwin"
        CFLAGS="$CFLAGS -mms-bitfields"
        CXXFLAGS="$CXXFLAGS -mms-bitfields"
        DSO_LDOPTS='-shared'
        MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
        MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
        RC='$(WINDRES)'
        # Use temp file for windres (bug 213281)
        RCFLAGS='-O coff --use-temp-file'
        # mingw doesn't require kernel32, user32, and advapi32 explicitly
        LIBS="$LIBS -lgdi32 -lwinmm -lwsock32"
        MOZ_JS_LIBS='-L$(LIBXUL_DIST)/lib -ljs$(MOZ_BITS)$(VERSION_NUMBER)'
        MOZ_FIX_LINK_PATHS=
        DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom -lxpcom_core'
        XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/lib -lxpcom'
        DLL_PREFIX=
        IMPORT_LIB_SUFFIX=dll.a
    else
        TARGET_COMPILER_ABI=msvc
        HOST_CC='$(CC)'
.............................................................


其中
代碼:
        IMPORT_LIB_SUFFIX=dll.a

似乎是關鍵的問題點,如果修改成
代碼:
        IMPORT_LIB_SUFFIX=a

應該問題會解決


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 4 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 2 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群