2015-12-28 88 views
2

我正在嘗試使用Visual Studio 2008命令提示符爲Windows CE設備構建OpenSSL 1.0.2版本。我正在使用Windows 7,32位機器。在VS2008中構建用於WinCE的OpenSSL

我正在按照在INSTALL.WCE文件中提到的說明進行操作。

下面是我下面的步驟:

  1. 我已經設置PATH,LIB和包含變量。
  2. 運行「perl的配置VC-CE」
  3. 運行「MS \ do_ms」
  4. 運行」 NMAKE -f MS \ ce.mak」

下面是我面對

錯誤

lib/nologo /out:out32_ARMV4I\ssleay32.lib @C:\ Users \ AppData \ Local \ Temp \ nmBC93.tmp cl/Fotmp32_ARMV4I \ constant_time_test.obj -Iinc32 -Itmp32_ARMV4I/O1i/W3/GF/Gy/nologo -D UNICODE -D_UNICODE -DOPENSSL_SYSNAME_WINCE -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DDSO_WIN32 -DNO_CHMOD -DOP ENSSL_SMALL_FOOTPRINT -D_WIN32_WCE = 500 -DUNDER_CE = 500 -DWCE_PLATFORM_VC-CE -DARM -D_ARM_ -DARMV4I

-QRarch4T -QRinterwork回報/ MT -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_ JPAKE -DOPENSSL_NO_DYNAMIC_ENGINE /紫/ Fdtmp32_ARMV4I /應用-c \加密\ constant_time_test.c constant_time_test.c鏈路/ NOLOGO/OPT:REF /subsystem:windowsce,5.00 /機:ARM /調試/out:out32_ARMV4I\constant_time_test.exe

C:\用戶\應用程序數據\本地\ Temp \ nmBE87.tmp tmp32_ARMV4I \ constant_time_test.obj

致命錯誤LNK1112:模塊機器類型'X86'與目標機器類型'ARM'衝突

NMAKE:致命錯誤U1077:'「C:\ Program Files \ Microsoft Visual Studio 9.0 \ VC \ BIN \ link.EXE」':返回碼'0x458'停止。

按我的理解,這是因爲掉落我是一個x86機器上,並試圖建立ARM平臺的庫。我如何克服這個問題,因爲VS2008沒有交叉編譯器。我可以在不使用wcecomapt庫的情況下構建它嗎?

+0

對於Windows CE,我相信你必須安裝Platform Builder。或者安裝Windows SmartPhone和Windows PocketPC SDK。我相信我以前提供過鏈接。安裝SDK後,您將擁有*「ARM開發人員工具命令提示符」*,就像您在X86和X64中使用的一樣。 – jww

+0

我已經安裝了SDK的,仍然看不到「ARM Cross工具命令提示符」。 – AnK

回答

1

PATH,LIB和INCLUDE設置不正確;你似乎正在用x86工具鏈構建。 C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.EXE是x86的鏈接器,不是ARM。使用VS2008的交叉編譯器時,正確的鏈接器將是c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce\bin\x86_arm\link.EXE

INSTALL.WCE包含eMbedded Visual C++的指令,這些指令並不完全適用於VS2008 - 特別是VS2008中顯着缺少設置環境的批處理文件。您必須自己查找和/或製作它們,這幾乎就是將PATH,INCLUDE和LIB分別指向交叉編譯器,CE SDK的頭文件和庫。

假設您已經安裝了交叉編譯器,無論是從VS2008還是其中一個設備SDK,都應該可以工作。如果您沒有安裝交叉編譯器,並且您正嘗試爲CE 5構建,則還可以獲得可免費使用的eMbedded Visual C++;如果你這樣做,一定要抓住SP4。有了它,你應該能夠按照INSTALL.WCE中的說明來寫信。