HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
1116
ルンバで踊るカトチャ#ラベルの定義が存在しません エラーが解決できない2未解決


ルンバで踊るカトチャ

リンク

2020/11/16(Mon) 23:20:42|NO.91811

下記のスクリプトを実行すると後述するエラーを吐き出します。

いくら考えても何が間違っているのわかりません・・。

スクリプトを削って最小限にしてデバッグしてみたが解決せず。


何か基本的な知識が抜けているのでしょうか。

教えて頂けると大変ありがたいのです。


/////////////////////////////////////////////////////////////// #module "test" *test_a return *test_b return #global gosub *test_a@test mes "end" //#ラベルの定義が存在しません [test_a@test] //test.hsp(12) : error 19 : 致命的なエラーです (12行目)



この記事に返信する


TOMATO

リンク

2020/11/17(Tue) 04:05:40|NO.91812

その1.最適化を切る(おすすめはしないです)


#cmpopt optcode 0 #module "test" *test_a return *test_b return #global gosub *test_a@test mes "end"

その2.モジュールTestに対して、呼び出す命令を1つだけ作って呼ぶ

#module "test" #deffunc test_Init // dummy return *test_a return *test_b return #global test_Init gosub *test_a@test mes "end"



TOMATO

リンク

2020/11/17(Tue) 04:09:28|NO.91813

何が起きているかと言いますと、
#module "test" 〜 #global がコンパイル時の最適化機能によって自動削除されています。
なので、ラベルが見つからないとエラーが表示されているようです。

最適化を切るか、モジュール内のユーザー定義命令への参照があれば削除されないため、
意図的に初期化用のダミー命令を用意して、最適化による削除が発動しないようにしています。



ONION software Copyright 1997-2021(c) All rights reserved.