
環境はWindowsXP SP3
VisualStudio2008です。
メイクファイルからdllを生成するには
dllとlib形式で用いるフリーのライブラリがありまして、
Windows用バイナリとソースが提供されています。
Windows用バイナリの方がリリースが遅いので、
最新のソースの方でdllとlibを生成しようと考えました。
しかし、中身を見ると、
C言語用の「.c」「.h」ファイル以外に以下のファイルが含まれており、
これは何なのかと疑問を持ちました。
aclocal.m4
config.guess
config.sub
configure
configure.in
depcomp
INSTALL
install-sh
ltmain.sh
Makefile.am
Makefile.in
missing
調べたところメイクファイルというものだと分かったのですが、
これを用いてどうやってdllを生成すればよいのでしょうか。
参考として、このライブラリの提供サイトを記載しておきます。
http://libharu.org/wiki/Downloads
No.3ベストアンサー
- 回答日時:
>MSVCRT.lib(MSVCR90.dll) : error LNK2005: _malloc は既に LIBCMT.lib(malloc.obj)
>で定義されています。
nmake -f script/Makefile.msvc
でlibをビルドして、
そのまま
nmake -f script/Makefile.msvc_dll
を実施したのでしょうか?
makeではコンパイル済みで変更のないソースはコンパイルしません。
で…Makefile.msvcでは-MTが、Makefile.msvc_dllでは/MDが指定されています。
# 前者は「マルチスレッド」、後者は「マルチスレッド DLL」の指定…ですな。
nmake -f script/Makefile.msvc clean
で生成されたファイルを削除した上で、
nmake -f script/Makefile.msvc_dll
を実施してみてはどうですか?
No.2
- 回答日時:
libHaru 2.2.xには、MSVC++のMakefileが入っていないようです。
libHaru 2.1.0をDLして展開。
libHaru 2.2.1もDLして展開して、ソースとヘッダなどを上書きコピーして、
「Visual Studio 2008 コマンド プロンプト」等でコマンドプロンプトを起動、
cd /d ~
でディレクトリ移動して…
nmake -f script/Makefile.msvc
でビルドが開始されました。
ただし、zlibが無いのでエラーになってしまいましたが……。
導入して最後まで確認…はしていませんのでとっかかりとして参考に…なるかなぁ。
割と無理矢理な方法ですので、あまりおすすめはできませんけどね。
# ソースファイルが追加/削除されていた場合にビルド対象になりませんし…
cygwin/MSYSの方がよろしいかと思われます…。
この回答への補足
ありがとうございます。非常に参考になりました。
zlib, libpngが必要だったのでヘッダファイルを追加し、
lib形式で生成することができました。
しかしdllの生成となるとまたもやエラーです。
nmake -f script/Makefile.msvc_dll
というコマンドでビルドすればいいようですが、
MSVCRT.lib(MSVCR90.dll) : error LNK2005: _malloc は既に LIBCMT.lib(malloc.obj)
で定義されています。
という、VC++で開発中にたまに見るエラーが表示されました。
VisualStudioで言うプロジェクトの構成を変更すれば解決できそうですが、
メイクファイルの場合、どこでプロジェクトの設定を変えられるのでしょうか。
No.1
- 回答日時:
中は見ていませんが, ドキュメントに何か書かれていませんか?
すみません、質問内容にあるINSTALLというのがそれでした、ありがとうございます。
インストール方法がこちらに載っていました。またまた参考までに。
http://libharu.org/wiki/Documentation/Install
しかしちょっと進んだところでまた行き詰っています。
nmake -f script/Makefile.msvc
というコマンドでできるそうですが、
この「script」というフォルダがなく、
VisualStuidoをインストールしたフォルダで直接Makefile.msvcを探しても
見つかりませんでした。よってこのまま実行するとエラーになります。
調べてみるとこのライブラリとは関係のないサイトに、
Makefile.inの中にある@VERSION@を設定し、
ファイル名をMakefile.msvcに変えてそれを使えるといった記述がありました。
しかし@VERSION@が何のことなのか分からず…。
とりあえずファイル名だけ変えてコマンドを実行すると、
fatal error U1035 : syntax error : expected ':' or '=' separator
と表示され、失敗しました。
これはセミコロンが抜けてるらしいので、中を開いてみましたが、
これまた何がなんだか分からずに苦戦しています。
ここまででアドバイス等あればお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) IT初心者です 仕事で、vb.netで作成されたdllをvbaで呼び出すプログラムを作成しろと言われ 1 2023/03/27 08:22
- フリーソフト cygewf-2.dllがない、と表示され、ダウンロードしたファイルが動作しない 2 2023/03/27 11:05
- C言語・C++・C# C言語の質問です。バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、 3 2023/07/19 14:58
- Windows 10 IT初心者です! powershellで以下のようなエラーが出ました オブジェクト参照がオブジェクト 1 2023/05/17 11:30
- ノートパソコン .dllファイルがありませんと表示される 5 2023/04/30 03:03
- C言語・C++・C# Windows Formアプリからコンソールを呼び出して文字を出力させたい 8 2023/05/09 10:53
- その他(プログラミング・Web制作) awkの文字列比較はPOSIXロケールまたはCロケールにおいてバイナリ値の比較に使えるか gawkな 1 2023/04/22 09:21
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- C言語・C++・C# condaコマンドに対応したプロキシ設定が思うようにならないようです。 2 2022/04/11 17:15
- Perl Perl の外部モジュールの利用方法 3 2022/07/10 18:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
user32.dllがないためアプリが...
-
手書き文字認識のdll
-
【形態素解析】Chasenを使いたい!
-
VBからIMEパッドを呼び出す方法...
-
VBにてIMEの入力モードを変える...
-
VB6.0(SP6)にて開発を行なって...
-
ASP.NETのDLL入れ替えについて
-
C# DLL エントリ ポイントが...
-
VBAエディタのコード画面で、カ...
-
visual studioの不要なDll削除方法
-
ベースアドレスの設定について
-
ウインドウズxpの「ファイルを...
-
MFC7.0ランタイムライブラリ
-
メイクファイルからdllを生成す...
-
Outlook2003アドイン不具合
-
WIN10で常にフォームを手前に
-
DLL作成手順について(BCC)
-
dllのロードアドレスについて
-
VC++2010 フォームアプリケーシ...
-
Susieプラグインのスタティック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
visual studioの不要なDll削除方法
-
user32.dllがないためアプリが...
-
ASP.NETのDLL入れ替えについて
-
VBAエディタのコード画面で、カ...
-
指定された引数が有効範囲にな...
-
VBにてIMEの入力モードを変える...
-
res://ieframe.dll/について
-
VB6.0(SP6)にて開発を行なって...
-
C# DLL エントリ ポイントが...
-
自作のDLLがみつからない
-
VBからIMEパッドを呼び出す方法...
-
エクセル マクロで指定フォルダ...
-
vb6で作成した画面が処理に時間...
-
WIN10で常にフォームを手前に
-
M365にアップデートしてからコ...
-
Excel2007のVBAで、セル範囲を...
-
USB機器のCプログラミングについて
-
[VBA]64b版-行数表示.dllの登録...
-
メイクファイルからdllを生成す...
-
手書き文字認識のdll
おすすめ情報