gdb for Windows ダウンロード
単独で配っていないようなので
(1) ソースコードを入手して、適当なフォルダに展開します
(2) 自分でビルドします
build gdb for Windows
linuxかcygwinを用意して mingwパッケージをインストールしておきます。
まず デバッガに c:\cygwin\bin\gdb.exe が使えないか試したほうが楽でしょう。
chew.exe gdb.exe gdbreplay.exe gdbserver.exe
が binフォルダに入っていると思います。
gdbを実行しコマンドプロンプトが表示されれば成功です。
「quit」と打つとgdbを終了することができます。
Windows用のIDEにgdb.exeの場所を指定して終了です。
【gccまたは、mingwが古い時のエラー】
古い i686-pc-mingw32 パッケージを自動削除することで直りました。
単独で配っていないようなので
(1) ソースコードを入手して、適当なフォルダに展開します
(2) 自分でビルドします
build gdb for Windows
linuxかcygwinを用意して mingwパッケージをインストールしておきます。
まず デバッガに c:\cygwin\bin\gdb.exe が使えないか試したほうが楽でしょう。
静的コンパイル: Windows
cygwinでWindows用バイナリをコンパイル
10分くらいで出来上がります
10分くらいで出来上がります
今回は gdb-8.0を使いました
make distclean
find . -name config.cache -exec rm {} \;
./configure --host=i686-w64-mingw32 \
--disable-host-shared \
LDFLAGS=" -lintl -static -static-libstdc++"
make
# gdb/gdb.exeがあることを確認
# DOSプロンプトで動くことを確認しましょう。
# フォルダ作成(bin)とコピーはい、出来上がりました。
mkdir bin
find . -type f -name "*.exe" -exec cp {} bin/ \;
chew.exe gdb.exe gdbreplay.exe gdbserver.exe
が binフォルダに入っていると思います。
gdbを実行しコマンドプロンプトが表示されれば成功です。
「quit」と打つとgdbを終了することができます。
Windows用のIDEにgdb.exeの場所を指定して終了です。
【以下のようなエラーは、動的リンクになっています】
- コンピューターに libintl-8.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
- コンピューターに libwinpthread-1.dll がないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。
【gccまたは、mingwが古い時のエラー】
- checking for library containing strerror... configure:
error: Link tests are not allowed after GCC_NO_EXECUTABLES.
ターゲット 'configure-libiberty' のレシピで失敗しました
古い i686-pc-mingw32 パッケージを自動削除することで直りました。
カテゴリー: ぷろぐらみんぐ
2017.07.03
普段使っているアプリをDelphi10.2で再構築すると
3倍のサイズになりとても大きくなりました。少しの修正が必要でした。
©や🍮とか入力できるようになったのでいいとしましょう。
対応していない場合は c ?? となります
同じものを .netで作るとおそらく 20-30KBくらいではないかと思います
2時間あれば、.Netへ移植できそうなアプリなんですけど、困っていないし、面倒ですからね。
移行に関して、
3倍のサイズになりとても大きくなりました。少しの修正が必要でした。
531KB | Delphi Win32 |
2555KB | Delphi 10.2 |
©や🍮とか入力できるようになったのでいいとしましょう。
対応していない場合は c ?? となります
同じものを .netで作るとおそらく 20-30KBくらいではないかと思います
2時間あれば、.Netへ移植できそうなアプリなんですけど、困っていないし、面倒ですからね。
移行に関して、
- RegExpr → RegularExpressions
- PAnsiChar → PWideChar
- 他数点
» 続きを読む
カテゴリー: ぷろぐらみんぐ
2017.07.01
#error ディレクティブ delphi
{$IF CompilerVersion > 18.5}
{$Message Fatal 'Delphi 2007 for Win32 以前のバージョンを使ってください'}
{$IFEND}
{$IF CompilerVersion < 20.0}
{$Message Fatal 'Delphi 2009 (Unicode版)以上を使ってください'}
{$IFEND}
{$IF CompilerVersion < 32.0}
{$Message Fatal 'Delphi 10.2 Tokyo (VER320)以上を使ってください'}
{$IFEND}
http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/Delphi コンパイラ指令のリスト:インデックス
http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/MESSAGE 指令(Delphi)
http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/コンパイラ バージョン
コンパイル | C/C++ | C# | Delphi |
停止 | #error メッセージ | {$Message Fatal 'メッセージ'} | |
継続 | #warning メッセージ | {$Message Warn '警告だよ'} | |
{$Message Hint 'ヒントだよ'} {$Message Error 'エラーだよ'} |
|||
#pragma message("") |
{$Message Hint 'ヒントだよ'}
{$Message Warn '警告だよ'}
{$Message Error 'エラーだよ'}
{$Message Fatal '致命的なエラーだよ'}
{$Message Warn '警告だよ'}
{$Message Error 'エラーだよ'}
{$Message Fatal '致命的なエラーだよ'}
{$IF CompilerVersion > 18.5}
{$Message Fatal 'Delphi 2007 for Win32 以前のバージョンを使ってください'}
{$IFEND}
{$IF CompilerVersion < 20.0}
{$Message Fatal 'Delphi 2009 (Unicode版)以上を使ってください'}
{$IFEND}
{$IF CompilerVersion < 32.0}
{$Message Fatal 'Delphi 10.2 Tokyo (VER320)以上を使ってください'}
{$IFEND}
http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/Delphi コンパイラ指令のリスト:インデックス
http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/MESSAGE 指令(Delphi)
http://docwiki.embarcadero.com/RADStudio/Tokyo/ja/コンパイラ バージョン
カテゴリー: ぷろぐらみんぐ
2017.04.07
Delphi FileSize ファイル名指定
標準の関数ではファイルハンドルが必要で、この関数は直接ファイル名を指定できます。
また、標準の関数では32ビット整数のため大きなサイズのファイルを正しく返せない不具合を起こしますがこの関数は64ビット整数で返します。
Unicodeファイル名対応です。 AnsiString,stringをいれても自動型変換が行われるので、SHIFT_JISファイル名でも動作します。
戻り値:
function FileLen(const AFilename: WideString): Int64; var info: TWin32FileAttributeData; begin Result := -1; if NOT GetFileAttributesExW(PWideChar(AFilename), GetFileExInfoStandard, @info) then EXIT; if (info.dwFileAttributes AND FILE_ATTRIBUTE_DIRECTORY > 0) then EXIT; // raise Exception.CreateFmt('Can not get file size : %s', [AFilename]); Result := Int64(info.nFileSizeLow) or Int64(info.nFileSizeHigh shl 32); end; function FileSize(const AFilename: WideString): Int64; begin Result := FileLen(AFilename); end;
標準の関数ではファイルハンドルが必要で、この関数は直接ファイル名を指定できます。
また、標準の関数では32ビット整数のため大きなサイズのファイルを正しく返せない不具合を起こしますがこの関数は64ビット整数で返します。
Unicodeファイル名対応です。 AnsiString,stringをいれても自動型変換が行われるので、SHIFT_JISファイル名でも動作します。
戻り値:
成功した場合は 0以上
失敗した場合は -1
の値が返ってきます
カテゴリー: ぷろぐらみんぐ
2017.03.11
Delphi 2.0 ロゴ画面で止まる Windows10
症状
原因:
一時的な対処方法 Workaround
(1) bin\CMPLIB32.DCL 名称変更. CMPLIB32-.DCLなどなんでもいい。
(2) Delphi 2.0 を起動します
(4) コンポーネント - ライブラリを開く をクリックします
(5) bin\CMPLIB32.DCL を選択します
(6) コンポーネントがロードされ、一応動作可能になります
※ (1)と(3)はレジストリ変更でも同様のことができます。
※ 次回起動するとロゴで停止するので、毎回処理が必要です。
一時的な対処方法 Workaround その2
(1) タスクマネージャーで フリーズしたDelphi2 を強制終了する
(2) コンポーネント読み込めないように 名称変更する
C:\Program Files\Borland\Delphi 2.0\BIN\
CMPLIB32.DCL
を
bin\CMPLIB32-.DCL
に変更する
(3) Delphi2を起動する
起動しない場合は、ほかの原因
(4) コンポーネントを読み込む
コンポーネント - ライブラリを開く (2) のファイルを選択する
(5) ライブラリの編集:問題のコンポーネントを削除する
(5-1) コンポーネント - インストールをクリック
インストールされた ユニット
「QuickRep」を選択し削除する
(5-2) 次に ライブラリ名を CMPLIB32.DCL にして
(5-3) OKをクリックする
(6) IDEを再起動してみる
問題なければ起動ができるはず
Windows10で動かすための,そのほかの確認事項は以下の通りです
(1) 現在ログイン中のユーザーにフルアクセス権限に設定するには、
icacls "C:\Program Files\Borland\Delphi 2.0" /grant %USERNAME%:F /t /c /l /q
(2) C:\Program Filesは、Windows VirtualStoreが管理しているのでそちらも念のため確認が必要です。
をWindows VirtualStoreを無効にするも参考にしてください
(3) HKEY_CURRENT_USER\Software\Borland\Delphi\2.0\Library
キーワード
Delphi 2.0 ロゴ画面で止まる Windows10
Stop on the Delphi 2.0 logo screen
症状
2016年4月は、Windows10で起動していました。
2017年2月に起動するとロゴから起動しなくなっていました。
原因:
おそらくWindows10のメジャーアップデートもしくはセキュリティソフトが原因です
一時的な対処方法 Workaround
(1) bin\CMPLIB32.DCL 名称変更. CMPLIB32-.DCLなどなんでもいい。
(2) Delphi 2.0 を起動します
次のエラーが表示されるのでOKをクリックします
Cannot open component library C:\Program Files\Borland\Delphi 2.0\BIN\CMPLIB32.DCL (error code 126).
(3) (1)のファイルを元の名前に戻します(4) コンポーネント - ライブラリを開く をクリックします
(5) bin\CMPLIB32.DCL を選択します
(6) コンポーネントがロードされ、一応動作可能になります
※ (1)と(3)はレジストリ変更でも同様のことができます。
※ 次回起動するとロゴで停止するので、毎回処理が必要です。
一時的な対処方法 Workaround その2
- QuickReportがいらない場合は削除することで回復することができます。
- CMPLIB32.DCLのバックアップを忘れずに、(QuickRepoのREG.pasがないため)
(1) タスクマネージャーで フリーズしたDelphi2 を強制終了する
(2) コンポーネント読み込めないように 名称変更する
C:\Program Files\Borland\Delphi 2.0\BIN\
CMPLIB32.DCL
を
bin\CMPLIB32-.DCL
に変更する
(3) Delphi2を起動する
起動しない場合は、ほかの原因
(4) コンポーネントを読み込む
コンポーネント - ライブラリを開く (2) のファイルを選択する
(5) ライブラリの編集:問題のコンポーネントを削除する
(5-1) コンポーネント - インストールをクリック
インストールされた ユニット
「QuickRep」を選択し削除する
(5-2) 次に ライブラリ名を CMPLIB32.DCL にして
(5-3) OKをクリックする
(6) IDEを再起動してみる
問題なければ起動ができるはず
Windows10で動かすための,そのほかの確認事項は以下の通りです
(1) 現在ログイン中のユーザーにフルアクセス権限に設定するには、
icacls "C:\Program Files\Borland\Delphi 2.0" /grant %USERNAME%:F /t /c /l /q
(2) C:\Program Filesは、Windows VirtualStoreが管理しているのでそちらも念のため確認が必要です。
をWindows VirtualStoreを無効にするも参考にしてください
(3) HKEY_CURRENT_USER\Software\Borland\Delphi\2.0\Library
ComponentLibrary
SearchPath
キーワード
Delphi 2.0 ロゴ画面で止まる Windows10
Stop on the Delphi 2.0 logo screen
カテゴリー: ぷろぐらみんぐ
2017.02.11