- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
下一个应用
program Project1;
{$IFDEF FPC}
{$mode delphi}
{$ENDIF}
begin
{$IFDEF CPU386}
Writeln('CPU386');
{$ENDIF}
Readln;
end.
在我的系统(Win7 64 位,CPU intel core i3)上,Delphi(XE) 和 FPC(2.6.2) 产生不同的输出。 Delphi 输出 CPU386
字符串,FPC 则不输出。
似乎 FPC 没有为我的 CPU 定义 CPU386
符号(请参阅 the list of FPC defines );它定义了 CPUX86_64
符号。
到目前为止,我正在使用下一个解决方法:
{$IFDEF FPC}
{$IFNDEF CPU386}
{$IFDEF CPUX86_64}
{$DEFINE CPU386}
{$ENDIF}
{$ENDIF}
{$ENDIF}
最佳答案
这正如预期的那样。 CPU386
条件适用于 32 位 Intel x86 目标。 CPUX86_64
条件适用于 64 位 Intel x64 目标。
当您使用 64 位 Delphi 编译器编译程序时,它也不会产生任何输出。因为 CPU386
条件也没有为 64 位 Delphi 编译器定义。
这样做是不正确的:
{$IFDEF CPUX86_64}
{$DEFINE CPU386}
{$ENDIF}
CPU386
表示目标架构是 32 位 Intel x86。而 64 位 Intel x64 则不是。
预定义条件的 Delphi 文档位于:http://docwiki.embarcadero.com/RADStudio/en/Conditional_compilation_(Delphi)#Predefined_Conditionals
它在 CPU 标题下列出了以下内容:
对于 32 位 x86 目标,Delphi 和 FPC 都定义了 CPU386
。对于 64 位 x64 目标,Delphi 定义了 CPUX64
,FPC 定义了 CPUX86_64
。
如果您需要在共享源代码中使用通用条件,那么您可能需要做一些额外的工作。假设您选择了 CPUX86
和 CPUX64
。然后你会包括这个:
{$IFDEF FPC}
{$IFNDEF CPU386}
{$DEFINE CPUX86}
{$ENDIF}
{$IFNDEF CPUX86_64}
{$DEFINE CPUX64}
{$ENDIF}
{$ENDIF}
关于delphi - FPC没有为64位处理器定义CPU386符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26481400/
我在一个有 10 个客户组和很多类别/产品的 Magento 网站上使用 Lesti FPC。 我创建了一个 shell 脚本,它会在一夜之间读取 sitemap.xml 和 wget 的每个 url
是否可以将具有诸如 MyLib.Classes.pas 之类的作用域名称的 Delphi 单元移植到 FPC(版本 2.6.0),而无需重命名它以删除作用域前缀 MyLib。? 最佳答案 FPC的开发
召集所有FreePascal和/或Lazarus大人物!! 查看标记为[FPC]或[Lazarus]的大部分问题,我们会发现Marco van de Voort可以回答大多数问题... But why
这是我第一次在这个网站上。通常,我在旧帖子中找到回复没有问题,但我的实际问题没有成功。 我想知道如何使用 RTTI 函数在运行时知道 Lazarus/FPC 下记录的属性/成员?我知道如何为类(Tpe
实际上,我在 Free Pascal 下使用 OLE 自动化,但某些对象具有使用保留字作为名称的属性,因此我无法编译代码。 检查此示例 MyObj : OleVariant; begin My
我们正在使用 Magento 1.13 EE、内存缓存和 APC 操作代码缓存。 对静态 cms 页面/静态 block 所做的任何文本更改都会立即反射(reflect)在前端和缓存管理中,FPC 将
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
我在将 Delphi BASM32 代码移植到 FPC 时遇到问题: program MulTest; {$IFDEF FPC} {$mode delphi} {$asmmode intel}
如何将 FPC .o 从库链接到 Delphi 可执行文件。当我尝试链接以下代码时,我收到一堆不满意的前向或外部声明。 library project1; {$mode objfpc}{$H+} us
我有 MainMenu 表单,我想在用户从菜单中选择命令项时进行拦截。这在德尔福中有效: type TForm1 = class(TForm) ... // Memo and MainMe
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我在 Windows 10(64 位)上安装了 64 位 Lazarus 1.6/FPC 3.0,并移植了包含 InterlockedCompareExchangePointer 函数的 Delphi
请告诉我在哪里可以获得有关使用 FPC 在 iOS 上进行开发的信息?我不是指 Firemonkey iOS 应用程序。如何使用 FPC 访问 iPhone 环境?例如 GPS 或加速度计等。我使用
我正在尝试安装 fpc Linux 操作系统上的软件包。我得到了错误: dependencies ‘mclust’, ‘prabclus’, ‘mvtnorm’, ‘robustbase’, ‘ker
我对“Emborcadero”的整个发展方向感到非常沮丧,我真的打算投资 FPC/Lazarus。 前往Lazarus Documentation页面并找到以下博客: Lazarus Developm
我正在尝试创建一个 shell 扩展来为 Windows 资源管理器“infotips”中的 JPEG 文件提供 EXIF 信息,并且正在使用 Lazarus,因为这需要生成 x64 DLL。 Laz
这些功能很有用: function MakeWord(low, high: char): word; begin result := byte(high) shl 8 + byte(low); e
我们有一个充满自定义组件的项目,目前正在 Lazarus 和 Delphi 中运行。 我正在思考它的代码接口(interface),但我对它们不太熟悉。我想知道的是:Delphi 和 Lazarus
我已经为 Delphi 和 FPC 编写了一个相当大的矩阵运算库。现在该库存在一个用于 Intel AVX 扩展的扩展,但是我只能设法在 FPC 中编译它。我的想法是创造FPC 中的 .o 文件包含
我找到了一个很好的 JNI 实现: https://sites.google.com/site/aminer68/jni-wrapper-for-delphi-and-freepascal 它有 2.
我是一名优秀的程序员,十分优秀!