Skip to content

Instantly share code, notes, and snippets.

@xtne6f

xtne6f/build_memo.txt Secret

Last active May 10, 2020
Embed
What would you like to do?
DLLを自分でビルドしたい人向けのメモ(2019-04-03)
・あらかじめEDCBのビルド環境(Visual Studio Express 2015 for Desktop Update 3)を整えていることが前提
・備忘録みたいなものであまり丁寧な説明ではない
[BonDriver_UDP.dll/BonDriver_TCP.dll]
ソースコードが https://www.axfc.net/u/3753613 にある(2ch_EDCB/54/376より)
[OpenSSL]
(各ソースファイルは各々の公式サイトから適宜新しいバージョンを用意すること)
1.strawberry-perl-5.28.1.1-32bit-portable.zipを展開してc:\perlに置く
2.nasm-2.13.03-win32.zipからnasm.exeを取り出してC:\perl\perl\binに置く(または任意のどこかに置いてパスを通す)
3.スタートメニューの"Visual Studio 2015"→(x86ビルド)"開発者コマンド プロンプト for VS2015"を起動
(x64ビルド)"VS2015 x86 x64 Cross Tools コマンド プロンプト"を起動
4.openssl-1.1.1b.tar.gzを展開したフォルダにcdして以下を実行
>set PATH=%PATH%;c:\perl\perl\bin
(x86ビルド)>perl Configure VC-WIN32 --prefix=c:/openssl-1_1 --openssldir=c:/openssl-1_1/ssl
(x64ビルド)>perl Configure VC-WIN64A --prefix=c:/openssl-1_1 --openssldir=c:/openssl-1_1/ssl
>nmake
>nmake test ←ビルド結果の検証
>nmake install
5.c:\openssl-1_1\bin にopenssl.exeとlibssl-1_1(-x64).dllとlibcrypto-1_1(-x64).dllができる
[lua52.dll]
1.LuaBinariesからlua-5.2.4_Sources.zipをダウンロードして展開
これは公式ソースにluaconf.h/LUA_CPATH_DEFAULTの微調整とリソース(.rc)、モジュール定義(.def)が追加されたもの
2.VisualStudioの新規作成→プロジェクト→Win32プロジェクトを選んでプロジェクト名をlua52とする
3.ウィザードを進めてアプリケーションの種類をDLL、空のプロジェクトにチェック
4.MakefileのLUA_Aの依存関係を目で追って、次のファイルをlua52プロジェクトのフォルダに移動
(.cと.rcはソリューションエクスプローラのツリーにも加える)
lapi.c lauxlib.c lbaselib.c lbitlib.c lcode.c lcorolib.c lctype.c ldblib.c ldebug.c ldo.c
ldump.c lfunc.c lgc.c linit.c liolib.c llex.c lmathlib.c lmem.c loadlib.c lobject.c
lopcodes.c loslib.c lparser.c lstate.c lstring.c lstrlib.c ltable.c ltablib.c ltm.c lundump.c
lvm.c lzio.c
lapi.h lauxlib.h lcode.h lctype.h ldebug.h ldo.h lfunc.h lgc.h llex.h llimits.h
lmem.h lobject.h lopcodes.h lparser.h lstate.h lstring.h ltable.h ltm.h lua.h luaconf.h
lualib.h lundump.h lvm.h lzio.h
lua_dll.rc
lua52.def
5.tecmakewin.makの挙動を目で追って、プロジェクトのプロパティを次のように変更
C/C++→プリプロセッサの定義に追加: _STDCALL_SUPPORTED;_CRT_SECURE_NO_DEPRECATE;LUA_COMPAT_ALL
リンカー→モジュール定義ファイル: lua52.def
6.Release/Win32でビルド
[Luaモジュール(LuaFileSystemの例)]
1.LuaFileSystemのGitHubからluafilesystem-v_1_6_3.zipをダウンロードして展開
2.VisualStudioの新規作成→プロジェクト→Win32プロジェクトを選んでプロジェクト名をlfsとする
3.ウィザードを進めてアプリケーションの種類をDLL、空のプロジェクトにチェック
4.次のファイルをlfsプロジェクトのフォルダに移動(.cはソリューションエクスプローラのツリーにも加える)
lfs.c lfs.h lfs.def
※lfs.defの"VERSION 1.5.0"は"1.5"に変更: https://github.com/keplerproject/luafilesystem/pull/50
5.lauxlib.h lua.h luaconf.h lualib.h lua52.libをプロジェクトのフォルダにコピー
(ただのインポートライブラリなのでLuaBinariesのバイナリについてくる奴でもいい)
6.プロジェクトのプロパティを次のように変更
全般→文字セット: マルチバイト文字セットを使用する
C/C++→追加のインクルードディレクトリ: . (←ピリオド1つ)
C/C++→プリプロセッサの定義に追加: _CRT_SECURE_NO_WARNINGS
リンカー→追加の依存ファイルに追加: lua52.lib
リンカー→モジュール定義ファイル: lfs.def
7.Release/Win32でビルド
8.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
You can’t perform that action at this time.