草庐IT

c++ - 在 VS2008 中为 WinCE 构建 OpenSSL

coder 2024-06-12 原文

我正在尝试使用适用于 Windows CE 设备的 Visual Studio 2008 命令提示符构建 OpenSSL 1.0.2 版本。我正在使用 Windows 7、32 位机器。

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

以下是我正在执行的步骤:

  1. 我已经设置了 PATH、LIB 和 INCLUDE 变量。
  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 - DOPENSSL_SMALL_FOOTPRINT -D_WIN32_WCE=500 -DUNDER_CE=500 -DWCE_PLATFORM_VC-CE -DARM -D_ARM_ -DARMV4I

-QRarch4T -QRinterwork-return /MT -DOPENSSL_NO_RC5 -DOPENSSL_NO_MD2 -DOPENSSL_NO_KRB5 -DOPENSSL_NO_ JPAKE -DOPENSSL_NO_DYNAMIC_ENGINE /Zi /Fdtmp32_ARMV4I/app -c .\crypto\constant_time_test.c constant_time_test.c link /nologo /opt:ref /subsystem:windowsce,5.00 /machine:ARM /debug /out:out32_ARMV4I\constant_time_test.exe

C:\Users\AppData\Local\Temp\nmBE87.tmp tmp32_ARMV4I\constant_time_test.obj

fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'ARM'

NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\link.EXE"' : return code '0x458' Stop.

据我了解,这是因为我在 x86 机器上并尝试为 ARM 平台构建库而下降。我如何克服这个问题,因为 VS2008 没有交叉编译器。我可以在不使用 wcecomapt 库的情况下构建它吗?

最佳答案

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 包含不完全适用于 VS2008 的 eMbedded Visual C++ 说明 - 特别是,设置环境的批处理文件在 VS2008 中明显缺失。您必须自己找到和/或制作它们,这几乎就是设置 PATH、INCLUDE 和 LIB 以分别指向交叉编译器、CE SDK 的头文件和库。

假设您确实安装了交叉编译器(来自 VS2008 或其中一个设备 SDK),这应该可以工作。如果您没有安装交叉编译器,并且由于您正在尝试为 CE 5 构建,您还可以获得免费提供的 eMbedded Visual C++;如果你这样做,一定要捕获 SP4。有了它,您应该能够完全按照 INSTALL.WCE 中的说明进行操作。

关于c++ - 在 VS2008 中为 WinCE 构建 OpenSSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34493667/

有关c++ - 在 VS2008 中为 WinCE 构建 OpenSSL的更多相关文章

  1. ruby-on-rails - Railstutorial : db:populate vs. 工厂女孩 - 2

    在railstutorial中,作者为什么选择使用这个(代码list10.25):http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-usersnamespace:dbdodesc"Filldatabasewithsampledata"task:populate=>:environmentdoRake::Task['db:reset'].invokeUser.create!(:name=>"ExampleUser",:email=>"example@railstutorial.org",:passwo

  2. ruby-on-rails - 如何优雅地重启 thin + nginx? - 2

    我的瘦服务器配置了nginx,我的ROR应用程序正在它们上运行。在我发布代码更新时运行thinrestart会给我的应用程序带来一些停机时间。我试图弄清楚如何优雅地重启正在运行的Thin实例,但找不到好的解决方案。有没有人能做到这一点? 最佳答案 #Restartjustthethinserverdescribedbythatconfigsudothin-C/etc/thin/mysite.ymlrestartNginx将继续运行并代理请求。如果您将Nginx设置为使用多个上游服务器,例如server{listen80;server

  3. ruby-on-rails - 在 Rails 开发环境中为 .ogv 文件设置 Mime 类型 - 2

    我正在玩HTML5视频并且在ERB中有以下片段:mp4视频从在我的开发环境中运行的服务器很好地流式传输到chrome。然而firefox显示带有海报图像的视频播放器,但带有一个大X。问题似乎是mongrel不确定ogv扩展的mime类型,并且只返回text/plain,如curl所示:$curl-Ihttp://0.0.0.0:3000/pr6.ogvHTTP/1.1200OKConnection:closeDate:Mon,19Apr201012:33:50GMTLast-Modified:Sun,18Apr201012:46:07GMTContent-Type:text/plain

  4. ruby - 在 Ruby 中构建长字符串的简洁方法 - 2

    在编写Ruby(客户端脚本)时,我看到了三种构建更长字符串的方法,包括行尾,所有这些对我来说“闻起来”有点难看。有没有更干净、更好的方法?变量递增。ifrender_quote?quote="NowthatthereistheTec-9,acrappyspraygunfromSouthMiami."quote+="ThisgunisadvertisedasthemostpopularguninAmericancrime.Doyoubelievethatshit?"quote+="Itactuallysaysthatinthelittlebookthatcomeswithit:themo

  5. ruby - 使用 `+=` 和 `send` 方法 - 2

    如何将send与+=一起使用?a=20;a.send"+=",10undefinedmethod`+='for20:Fixnuma=20;a+=10=>30 最佳答案 恐怕你不能。+=不是方法,而是语法糖。参见http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_expressions.html它说Incommonwithmanyotherlanguages,Rubyhasasyntacticshortcut:a=a+2maybewrittenasa+=2.你能做的最好的事情是:

  6. ruby - 如何计算 Liquid 中的变量 +1 - 2

    我对如何计算通过{%assignvar=0%}赋值的变量加一完全感到困惑。这应该是最简单的任务。到目前为止,这是我尝试过的:{%assignamount=0%}{%forvariantinproduct.variants%}{%assignamount=amount+1%}{%endfor%}Amount:{{amount}}结果总是0。也许我忽略了一些明显的东西。也许有更好的方法。我想要存档的只是获取运行的迭代次数。 最佳答案 因为{{incrementamount}}将输出您的变量值并且不会影响{%assign%}定义的变量,我

  7. ruby - 使用 rbenv 和 ruby​​-build 构建 ruby​​ 失败,出现 undefined symbol : SSLv2_method - 2

    我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby​​2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby​​-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm

  8. arrays - Ruby 数组 += vs 推送 - 2

    我有一个数组数组,想将元素附加到子数组。+=做我想做的,但我想了解为什么push不做。我期望的行为(并与+=一起工作):b=Array.new(3,[])b[0]+=["apple"]b[1]+=["orange"]b[2]+=["frog"]b=>[["苹果"],["橙子"],["Frog"]]通过推送,我将推送的元素附加到每个子数组(为什么?):a=Array.new(3,[])a[0].push("apple")a[1].push("orange")a[2].push("frog")a=>[[“苹果”、“橙子”、“Frog”]、[“苹果”、“橙子”、“Frog”]、[“苹果”、“

  9. Ruby#index 方法 VS 二进制搜索 - 2

    给定一个元素和一个数组,Ruby#index方法返回元素在数组中的位置。我使用二进制搜索实现了我自己的索引方法,期望我的方法会优于内置方法。令我惊讶的是,内置的在实验中的运行速度大约是我的三倍。有Rubyist知道原因吗? 最佳答案 内置#indexisnotabinarysearch,这只是一个简单的迭代搜索。但是,它是用C而不是Ruby实现的,因此自然可以快几个数量级。 关于Ruby#index方法VS二进制搜索,我们在StackOverflow上找到一个类似的问题:

  10. += 的 Ruby 方法 - 2

    有没有办法让Ruby能够做这样的事情?classPlane@moved=0@x=0defx+=(v)#thisiserror@x+=v@moved+=1enddefto_s"moved#{@moved}times,currentxis#{@x}"endendplane=Plane.newplane.x+=5plane.x+=10putsplane.to_s#moved2times,currentxis15 最佳答案 您不能在Ruby中覆盖复合赋值运算符。任务在内部处理。您应该覆盖+,而不是+=。plane.a+=b与plane.a=

随机推荐