2017-06-21 4 views
0

私はEclipseツールCDTワークスペースの別のプロジェクトからソースファイルをインクルードしてビルドしようとしています。私はhttps://stackoverflow.com/a/20792721/4128201で与えられた手順を試して、ソースファイル(.cpp)とヘッダー(.h)ファイルとhttps://stackoverflow.com/a/2305737/4128201を参照プロジェクトにソースファイルをビルドするためにMakefile.amを設定してみましたが、 /ファイルのリンク。引数の便宜上 私は、次のワークスペースがあります。eclipse cdt autotoolsには他のワークスペースプロジェクトのソースが含まれています

projectA/ 
     src/ 

projectB/ 
     src/ 

を私はPROJECTA/SRCからProjectBの/ srcにソースが含まれており、構築したいので、私はProjectBのの

で「PROJECTA」としてPROJECTA/SRCを追加しました

プロパティ - > C/C++一般 - >パスとSymbols->ソースの場所Eclipseワークスペースプロジェクトに新しいリンク元のフォルダになり

、すなわち:

projectA/ 
     src/ 

projectB/ 
     src/ 
     projecta/ (linked to projectA/src/) 

今私はできProjectBののソースファイルで#include XYZ.hとEclipseには、リンクを見つけたが、私はエラーを取得する際の構築:

... fatal error: XYZ.h: No such file or directory

PROJECTA/srcがそのプロジェクトのように定義されてprojecta_dirAM_CXXFLAGS = -I$(projecta_dir)が含まれてMakefile.am、中に含まれているがPROJECTA/SRCの絶対パスとして

プロパティ - >資源>リンクされたリソース - >パス変数

におけるパス変数。だから、Makefile.amを親ディレクトリに向けることが可能かどうか、EclipseのSymbolic LinkedディレクトリがMakefile.amのアクセスに有効であるかどうかを知る必要がありますか?

むしろもたらすためProjectBの/ SRCに連結されたサブディレクトリとしてPROJECTA/SRCを定義:

projectB/ 
     src/ 
      ... 
      projecta/ (linked to projectA/src) 

及びサブディレクトリに(ProjectBの/ SRCで)Makefile.amを導く:

AUTOMAKE_OPTIONS = subdir-objects 
bin_PROGRAMS = projectB 
projectB_SOURCES = ... projecta/XYZ.cpp 

とヘッダを含む#include "projecta/XYZ.h"私はまだエラーが発生します:

... fatal error: projecta/XYZ.h: No such file or directory

とEclipseのポップアップエラーも表示されます。参考のため

Unresolved inclusion: "projecta/XYZ.h"

これで私は最終的にhttps://www.gnu.org/software/automake/manual/html_node/Include.html#Includeを見た後、解決策を見つけた

答えて

1

GNU Autotool群ツールチェーンを実装YoctoプロジェクトADT Autotool群C++プロジェクトとEclipseのシンボリックリンクを迂回する必要があることを認識しています。ですから、私はprojectb/srcのprojecta/srcのMakefile.amを次のように参照しています:

AUTOMAKE_OPTIONS = subdir-objects 
bin_PROGRAMS = projectB 
projectB_SOURCES = ... $(top_srcdir)/../projectA/src/XYZ.cpp 

AM_CXXFLAGS = @[email protected] -I$(top_srcdir)/../projecta/src 
関連する問題