自社製のライブラリを使用してPCゲーム開発をしています。
今回、ゲームにネット接続の機能を持たせることとなりました。
ネットゲーム、というほどのものでもなく、
特典のデータがダウンロードできる、といった程度ですが。
コレのためにFTPダウンロードの仕組みを試作しました。
検証用のコンソールアプリケーションではうまくいったのですが、
いざゲームプログラムに組み込んだところ、
nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) は既に (自社製ライブラリ).lib(Allocator.obj) で定義されています。
1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) は既に (自社製ライブラリ)..lib(Allocator.obj) で定義されています。
1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void * __cdecl operator new[](unsigned int)" (??_U@YAPAXI@Z) は既に libcpmtd.lib(newaop.obj) で定義されています。
1>nafxcwd.lib(afxmem.obj) : error LNK2005: "void __cdecl operator delete[](void *)" (??_V@YAXPAX@Z) は既に LIBCMTD.lib(delete2.obj) で定義されています。
1>C:\Users\New Challenger\PROGRAMING\(開発中).exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
というエラーが発生。
「http://support.microsoft.com/kb/148652/ja」 の説明を参考に対処してみたところ、
1>(自社製ライブラリ).lib(Allocator.obj) : error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) は既に nafxcwd.lib(afxmem.obj) で定義されています。
1>(自社製ライブラリ).lib(Allocator.obj) : error LNK2005: "void __cdecl operator delete(void *)" (??3@YAXPAX@Z) は既に nafxcwd.lib(afxmem.obj) で定義されています。
1>C:\Users\New Challenger\PROGRAMING\(開発中).exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
となってしまうのですね。
ぶつかり合っている両者のうちの、どちらかがなければエラーを避けられるのは確かなんですが、
自社製ライブラリの方のnew/deleteも、アプリケーションの仕組みに合わせて変形させてあるものなので取っ払ってしまうわけにもいかず、、、
何かうまいこと共存させる方法はないものでしょうか?
自社製のライブラリではありますが、
開発者の方が今現在社を離れているためすぐに回答を得られないので、
広く知恵を貸していただきたいのです。
No.1ベストアンサー
- 回答日時:
スマートな方法とはいえませんが
リンカーのオプションで
「/FORCE 未解決または複数定義のシンボルがある場合でも、リンクを強制的に終了します。」
というオプションがあります。
http://msdn.microsoft.com/ja-jp/library/y0zzbyt4 …
nafxcwd.libと(自社製ライブラリ).libの、
リンク順を入れ替えて意図通りのnewが呼ばれるように制御できるかもしれません。
※実際試したわけではないので、できるかどうかはわかりません。
もし(自社製ライブラリ).libを修正できるなら
http://www2.research.att.com/~bs/bs_faq2.html#pl …
が参考になるかもしれません。
回答ありがとうございます。
早速、お教えいただいたことを参考に、いろいろと試してみたいと思います。
本当なら、
「うまくいきました、ありがとう!」
といいたいのですが、
まだちょっと実装と検証に時間がかかってしまいそうなので。
まずはなにより、お答えをいただけたことにお礼申し上げます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# leetcode 155 minstack 1 2022/05/07 16:43
- サーバー WindowsでApache が起動しない 1 2022/11/29 12:21
- オープンソース Vue+Laravelのデザインテンプレートのサンプルが起動できない 1 2022/05/18 21:52
- その他(プログラミング・Web制作) python flask から fastapiへの移行時のエラー対処 1 2023/02/05 12:26
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- その他(プログラミング・Web制作) Pythonで会員サイトの自動ログイン ID Nameがない 1 2022/12/16 02:09
- Visual Basic(VBA) VBAのコードで Dim Obj As AccessObject でコンパイルエラーがでます。 「ユ 2 2022/07/01 06:57
- PHP jpgraphで表示されない 2 2022/10/22 09:12
- PostgreSQL PostgreSQLで"pg_dumpall -f data.sql"を使ってバックアップしたデータ 2 2022/09/19 08:14
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VS2008 C++】2つのプロジェ...
-
BorlandC++Builder5.0でリンカ...
-
visual studio community2017 O...
-
fatal error LNK1104: ファイル...
-
タイプライブラリのレジストリ...
-
スタティックライブラリ関係の...
-
'stdafx.h'のエラーに関して
-
VS2010にて、依存関係とビルド順
-
非GPL版libx264とffmpegビルド
-
C++Builder リンカエラーとは?
-
#pragma commentの相対パス指定
-
VisualStudio の規定値が消滅した
-
静的/動的リンクライブラリにつ...
-
VC++でビルド時の、リンク警告 ...
-
python エラー
-
エクセルのエラーメッセージ「4...
-
<unistd.h>をVisualStudioでつ...
-
アプリケーションのDLLファイル...
-
Excelのエラーで困ってます。
-
” OS ビルド ” の意味が分か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スタティックライブラリ関係の...
-
'stdafx.h'のエラーに関して
-
静的/動的リンクライブラリにつ...
-
visual studio community2017 O...
-
C言語のPathFileExistsについて
-
【VS2008 C++】2つのプロジェ...
-
fatal error LNK1104: ファイル...
-
C++Builder リンカエラーとは?
-
OpenSSLの共有ライブラリ(libcr...
-
#include <winreg.h>をインクル...
-
lvwReport/エラー/プロジェクト...
-
VC++6.0からVC++.NET2005へ移植
-
#pragma commentの相対パス指定
-
スタティックライブラリの使い方
-
mac(osX)で、Javaはどこにイン...
-
BorlandC++Builder5.0でリンカ...
-
タイプライブラリのレジストリ...
-
C++によるPostgreSQLの接続
-
error LNK2019: 未解決の外部シ...
-
VCのincludeについて
おすすめ情報