Skip to content

Instantly share code, notes, and snippets.

@xtne6f
Last active May 2, 2023 11:10
Show Gist options
  • Save xtne6f/f9b6f19c10cd146fe580 to your computer and use it in GitHub Desktop.
Save xtne6f/f9b6f19c10cd146fe580 to your computer and use it in GitHub Desktop.
DLLを自分でビルドしたい人向けのメモ(2023-05-02)
・あらかじめEDCBのビルド環境(VisualStudioまたはMSYS2)を整えていることが前提
・備忘録みたいなものであまり丁寧な説明ではない
[BonDriver_UDP.dll/BonDriver_TCP.dll]
ソースコードが https://www.axfc.net/u/3753613 にある(2ch_EDCB/54/376より)
[OpenSSL(VisualStudioでビルド)]
(各ソースファイルは各々の公式サイトから適宜新しいバージョンを用意すること)
1.strawberry-perl-5.32.1.1-32bit-portable.zipを展開してc:\perlに置く
2.nasm-2.16.01-win32.zipからnasm.exeを取り出してC:\perl\perl\binに置く(または任意のどこかに置いてパスを通す)
3.スタートメニューの"Visual Studio 2017"→(x86ビルド)"開発者コマンド プロンプト for VS 2017"を起動
(x64ビルド)"VS 2017 用 x86_x64 Cross Tools コマンド プロンプト"を起動
4.openssl-3.0.8.tar.gzを展開したフォルダにcdして以下を実行
>set PATH=%PATH%;c:\perl\perl\bin
(x86ビルド)>perl Configure VC-WIN32 --prefix=c:/openssl-3 --openssldir=c:/openssl-3/ssl
(x64ビルド)>perl Configure VC-WIN64A --prefix=c:/openssl-3 --openssldir=c:/openssl-3/ssl
>nmake
>nmake test ←ビルド結果の検証
>nmake install
5.c:\openssl-3\bin にopenssl.exeとlibssl-3(-x64).dllとlibcrypto-3(-x64).dllができる
[OpenSSL(MSYS2でビルド)]
(各ソースファイルは各々の公式サイトから適宜新しいバージョンを用意すること)
1.スタートメニュー→(x86ビルド)"MSYS2 MINGW32"を起動
(x64ビルド)"MSYS2 MINGW64"を起動
2.makeとgccをインストール
(x86ビルド)$ pacman -S make mingw-w64-i686-gcc
(x64ビルド)$ pacman -S make mingw-w64-x86_64-gcc
3.ビルド
$ tar -xf openssl-3.0.8.tar.gz
$ cd openssl-3.0.8
(x86ビルド)$ ./Configure mingw --prefix=/c/openssl-3 --openssldir=/c/openssl-3/ssl
(x64ビルド)$ ./Configure mingw64 --prefix=/c/openssl-3 --openssldir=/c/openssl-3/ssl
$ make
$ make test ←ビルド結果の検証
$ make install
4.c:\openssl-3\bin にopenssl.exeとlibssl-3(-x64).dllとlibcrypto-3(-x64).dllができる
[Luaモジュール(LuaFileSystemの例)]
1.LuaFileSystemのGitHubからluafilesystem-v_1_6_3.zipをダウンロードして展開
2.VisualStudioの新しいプロジェクト→Visual C++→空のプロジェクトを選んでプロジェクト名をlfsとする
3.次のファイルをlfsプロジェクトのフォルダに移動(.cはソリューションエクスプローラのツリーにも加える)
lfs.c lfs.h lfs.def
※lfs.defの"VERSION 1.5.0"は"1.5"に変更: https://github.com/keplerproject/luafilesystem/pull/50
4.lauxlib.h lua.h luaconf.h lualib.h lua52.libをプロジェクトのフォルダにコピー
(ただのインポートライブラリなのでLuaBinariesのバイナリについてくる奴でもいい)
5.プロジェクトのプロパティを次のように変更
全般→構成の種類: ダイナミックライブラリ
全般→文字セット: マルチバイト文字セットを使用する
C/C++→追加のインクルードディレクトリ: . (←ピリオド1つ)
C/C++→プリプロセッサの定義に追加: _CRT_SECURE_NO_WARNINGS
リンカー→追加の依存ファイルに追加: lua52.lib
リンカー→モジュール定義ファイル: lfs.def
6.Releaseでビルド
7.lfs.dllをlua52.dllと同じ場所に置いて次のようなLuaスクリプトでカレントディレクトリが取れたら成功
require("lfs")
lfs.currentdir()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment