问题标签 [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.

0 投票
1 回答
104 浏览

c - 额外推动 OpenWatcom 内联汇编

我正在用 OpenWatcom V2 编译这个 C 源代码wcc

在 wcc 生成的 .obj 文件的 disassebly 中,6 pushes 和 5 pops 不平衡。(代码在运行时会因此而崩溃。)

我是否正确使用了 wcc 内联程序集?这可能是wcc中的错误吗?

0 投票
0 回答
85 浏览

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 中工作吗?我查看了编译器选项,没有看到任何内容。是否需要启用任何特殊的宏才能使其工作?

0 投票
1 回答
279 浏览

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 的数组初始值设定项中使用指示符?

0 投票
1 回答
27 浏览

compiler-optimization - Watcom 中的 C 优化不佳

我正在使用 Watcom C 编译器 (wcc) 2.0 版。我编译这个简单的代码并启用了许多优化,但生成的 ASM 对我来说似乎非常未优化。

以 8086 为目标进行编译,最快的优化 ( -otexan)。

然后拆卸:

生成的汇编程序如下所示:

这些跳跃对我来说看起来没有经过优化。我希望减少不必要的跳转,并且可能将结果直接放在 AX 上,而不是把它放在 BP 位置和后面(最后两行)。

我在那里错过了什么吗?wcc 是否出于某种原因忽略了我的开关?谢谢。

0 投票
0 回答
39 浏览

c - 有人知道 SOCKET.H 的 Watcom .lib 文件吗?

我一直在尝试制作一个dos通信程序。在找到我需要的头文件后,我意识到当我尝试链接时

当我链接此代码时,我收到一个socket()未定义的错误。

有没有人知道解决这个问题的方法是什么?有谁知道哪个库文件实现了“袜子”功能?