私は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_dir
AM_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を見た後、解決策を見つけた