nim (443レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
203(1): デフォルトの名無しさん [sage] 2022/09/16(金) 10:37:25.88 ID:8/QLgRNp(1/4) AAS
proc testfunc(x: cint): cint {.exportc, cdecl, dynlib.} =
return x
と描かれたソースを
nim c --app:lib -d:release hoge.nim
でコンパイルするとカレントディレクトリに hoge.dll が生成されて
import ctypes
ctypes.cdll.LoadLibrary('./hoge.dll').testfunc(123)
と実行出来たのですが
nim cpp --app:lib -d:release hoge.nim
でコンパイルするとカレントディレクトリに hoge.dll が生成されているはずなのに
LoadLibrary のところで
FileNotFoundError: Could not find module '(fullpath)\hoge.dll' (or one of its dependencies).
Try using the full path with constructor syntax.
と言われてしまいます
多分 or one of its dependencies が引っ掛かっているのではないかと思うのですが
何が足りないのでしょう? stdc++ の shared library ?
204: デフォルトの名無しさん [sage] 2022/09/16(金) 10:57:11.84 ID:8/QLgRNp(2/4) AAS
libstdc++-6.dll
をコピーしてみましたがだめでした
208: デフォルトの名無しさん [sage] 2022/09/16(金) 16:24:53.42 ID:8/QLgRNp(3/4) AAS
windows で nim 入れるときに一緒に入った mingw64 の中に objdump がありました
209: デフォルトの名無しさん [sage] 2022/09/16(金) 16:34:58.81 ID:8/QLgRNp(4/4) AAS
>>206
objdump -p hoge.dll | findstr "dll"
で出て来たのが
libgcc_s_seh-1.dll
libstdc++-6.dll
kernel32.dll
msvcrt.dll
でした
libstdc++-6.dll
だけではなく
libgcc_s_seh-1.dll
も必要でした
無事動作しましたありがとう
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.025s