这个错误是啥意思:未定义的符号:THREADVARLIST_STRINGS
Posted
技术标签:
【中文标题】这个错误是啥意思:未定义的符号:THREADVARLIST_STRINGS【英文标题】:What does this Error mean : Undefined symbol: THREADVARLIST_STRINGS这个错误是什么意思:未定义的符号:THREADVARLIST_STRINGS 【发布时间】:2011-07-27 19:14:09 【问题描述】:我刚开始学习 Free Pascal,我编写了这个相当基本的程序来练习数组。我收到两个错误:
Strings.lpr(32,1) 错误:未定义符号:THREADVARLIST_STRINGS
Strings.lpr(32,1) 错误:未定义符号:STRINGS_STRPAS$PCHAR$$SHORTSTRING
Strings.lpr(32,1) 致命:编译模块时出现 2 个错误,正在停止
代码如下:
program Strings;
$mode objfpc$H+
uses
$IFDEF UNIX$IFDEF UseCThreads
cthreads,
$ENDIF$ENDIF
Classes, SysUtils
you can add units after this ;
$R *.res
var
Marks : array [1..10] of Integer;
index : Integer;
begin
for index:= 0 to 10 do
begin
write('Enter mark of student ',index,': ');
readln(marks[index]);
end;
for index := 0 to 10 do
begin
write('Student No. ',index,' Marks: ',marks[index],' ');
if marks[index]>65 then writeln('PASS')
else writeln('FAIL');
end;
writeln('Press any key to continue.');
readln;
end. line 32
【问题讨论】:
嗯,我希望代码看起来更丰富多彩。 显然你需要为此添加delphi标签。 是的,@Marco,但将问题标记为“delphi”表明它实际上与 Delphi 有关,但这里并非如此。不要仅仅为了语法高亮而标记问题。在问题中使用the language-specification syntax。 Prettify 荧光笔仍然不支持特定于 Pascal 或 Delphi 的高亮规则,所以我们只能使用通用规则。 【参考方案1】:不要命名您的程序字符串。有一个具有该名称的预编译单元。
通常意味着您创建了一个主程序,但没有链接正确的 RTL。
可能的原因:
版本冲突,(编译器RTL) 手动链接所犯的错误(试图从 C 中访问 Pascal?) 尝试使用不支持某些语言功能的嵌入式 RTL。 (你的情况)一些命名冲突。但这通常很少见,并且通常被编译器捕获。因此,这种体验可能值得在 FPC 错误跟踪器中作为错误提交【讨论】:
【参考方案2】:变化:
程序字符串;
到:
程序测试字符串;
纠正错误。字符串是保留字。
此外,您还有“按任意键”后跟 readln。 readln 等待回车。比如:
WriteLn('按任意键继续。'); 重复 直到按键;
可能是您正在寻找的。
【讨论】:
以上是关于这个错误是啥意思:未定义的符号:THREADVARLIST_STRINGS的主要内容,如果未能解决你的问题,请参考以下文章