问题标签 [watcom]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 额外推动 OpenWatcom 内联汇编
我正在用 OpenWatcom V2 编译这个 C 源代码wcc
:
在 wcc 生成的 .obj 文件的 disassebly 中,6 push
es 和 5 pop
s 不平衡。(代码在运行时会因此而崩溃。)
我是否正确使用了 wcc 内联程序集?这可能是wcc中的错误吗?
c - Watcom 编译器中的长文件名支持
我正在使用 Watcom C32 优化编译器版本 11.0。
我开发了一个示例程序test.exe。这将创建一个具有长文件名的文件(例如:“用于 testing.txt 的示例文件”)并在其中写入一些虚拟内容。
当我在加载了 DOSLFN 的 FreeDOS 环境中编译和执行程序时,我看到示例程序 test.exe 正在创建一个具有短文件名(“sample f.txt”)而不是长文件名(“sample file for测试.txt") 。
所以这让我觉得 Watcom 不支持长文件名(LFN)。
有什么建议可以让 LFN 在 Watcom 中工作吗?我查看了编译器选项,没有看到任何内容。是否需要启用任何特殊的宏才能使其工作?
c++ - 如何在 OpenWatcom 1.9 中启用 C99?
我有一个针对 DOS 的旧项目(是的,真的),我需要更新和重新编译。该项目使用 Open Watcom 1.9 C/C++ 编译器和 JWasm 汇编器。在任何情况下,我都不能使用其他编译器或汇编器,因为该项目包含许多特定于它们的代码。
什么有效:
我可以按原样编译和链接项目,而现有代码没有任何问题。我可以更改代码并重新编译和链接项目。
我的问题:
在更新和改进代码的同时,我想使用 C99 语法/扩展语法的一部分。值得注意的是,我想在这样的数组初始值设定项中使用指示符:
我在某处(不记得在哪里)读到只有 gcc 支持该语法,但 Open Watcom 1.9 手册却相反。来自c_readme.pdf
,第 6.5 章,第 46 页:
6.5 与 Open Watcom 版本 1.3的区别
以下是 Open Watcom C/C++ 1.4 中所做更改的列表:
• C 编译器中添加了对 C99 指定初始化程序的支持,例如“struct {int a, b;} c = { .a=0, .b=1};"。这也支持数组,例如“int a[4] = {[0]=5, [3]=2};”。
请注意,我确实试图提供该文档的权威链接,但现在 openwatcom.org 已关闭(再次),我不记得该文档在该网站上的确切位置。但是,该文档包含在 OpenWatcom 1.9 的安装存档中,您仍然可以下载。例如,C 的 Windows 版本在这里。
当我尝试编译在数组初始值设定项中使用指示符的源文件时,如上所示,我只收到来自相应行的语法错误。我已经尝试过 POSIX 编译器驱动程序以及普通的 C 编译器,但都产生了相同的语法错误。这些是我使用的命令行:
那么我必须做些什么才能在 OpenWatcom C/C++ 1.9 的数组初始值设定项中使用指示符?
compiler-optimization - Watcom 中的 C 优化不佳
我正在使用 Watcom C 编译器 (wcc) 2.0 版。我编译这个简单的代码并启用了许多优化,但生成的 ASM 对我来说似乎非常未优化。
以 8086 为目标进行编译,最快的优化 ( -otexan
)。
然后拆卸:
生成的汇编程序如下所示:
这些跳跃对我来说看起来没有经过优化。我希望减少不必要的跳转,并且可能将结果直接放在 AX 上,而不是把它放在 BP 位置和后面(最后两行)。
我在那里错过了什么吗?wcc 是否出于某种原因忽略了我的开关?谢谢。
c - 有人知道 SOCKET.H 的 Watcom .lib 文件吗?
我一直在尝试制作一个dos通信程序。在找到我需要的头文件后,我意识到当我尝试链接时
当我链接此代码时,我收到一个socket()
未定义的错误。
有没有人知道解决这个问题的方法是什么?有谁知道哪个库文件实现了“袜子”功能?