プロが教えるわが家の防犯対策術!

Visual Studio (2015 無料版) 使って、VC++のプログラム開発勉強しています。

一つソリューション(Test)に二つのプロジェクト(Proj1, Proj2)作って、Proj2からProj1の一つのcppファイルを参照したいです。

両方プロジェクトはConsole起動できるように、ビルド後「.exe」作成される。Proj2はWindows Formアプリで、プロットを表示するよう、NPlotライブラリーを使っています。

Proj1側:
Data.cppというクラスがあって、そのクラス内、getRealData()というメソッドがある。

Proj2側:
MyForm.hがプロットを描画する処理を持つクラスで、MyForm.hからProj1側のData.cpp内のgetRealData()を呼びたい。

試してみたこと:
Proj2のMyForm.hの先頭にData.hをincludeする。
#include "Data.h"

Data.hにgetRealData()の定義があるので、MyForm.h内から、getRealData()を呼び出すことができる。

しかし、Proj2にData.hはどこにあるのか、教えないとコンパイルエラーになる。

教え方:
Proj2のプロパティーメニュー開いて、
C/C++ -> General -> Additional Include Directoriesに
"C:\User\Documents\Visual Studio 2015\Projects\Test\Proj1" を追加。(Data.cppファイルのパスです。)

↑で、コンパイルはOKです。

問題はリンカー。
Proj2のプロパティーメニュー -> Linker ->Input -> Additional Dependenciesに以下の値を設定。

"C:\User\Documents\Visual Studio 2015\Projects\Test\Proj1\x64\Release"

(Proj1がコンパイルされると上記のパスにobjファイルが生成されるので。)

Build -> Clean solutionの後、Build solutionを実行すると、
LINK : fatal error LNK1181: cannot open input file 'C:\User\Documents\Visual Studio 2015\Projects\Test\Proj1\x64\Release.obj'
と言われ、ビルドに失敗します。

Release.objというファイルはあるはずがない。C:\\....\Release フォルダーに存在する「Data.obj」を参照してほしかったです!

Visual Studio/VC++ に詳しい方、ご指導お願いします。

A 回答 (1件)

見た感じ Additional Dependencies で Data.obj まで指定すればいいように思うんだけど....



違うかなぁ?
    • good
    • 0
この回答へのお礼

それだった!!
ありがとうございます。

お礼日時:2016/07/22 16:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!