私はかなり大きい既存のプロジェクトにいくつかの変更を加えています。そのため、自動ツールで構築されています。変更にはIbexライブラリが含まれているので、ソースファイルの1つに#include "ibex.h"を追加しました。ライブラリを追加する
- /usr/local/lib/libibex.a /usr/local/include/ibex/ibex.h
- /:ライブラリが適切に自分のシステムにインストールされている、私は、次のファイルを持っていますUSR /ローカル/共有/ pkgconfig/ibex.pc pkgconfigコマンドの
結果:オリジナルMakefile.amはcompilに対応
$ pkg-config --libs ibex
-L/usr/local/lib -libex -lprim -lClp -lCoinUtils -lm
$ pkg-config --cflags ibex
-frounding-math -ffloat-store -I/usr/local/include -I/usr/local/include/ibex
私はアイベックスを使用するために取得したいユニット、以下のとおりである。
noinst_LTLIBRARIES = liblrasolver.la
AM_CPPFLAGS=$(config_includedirs)
liblrasolver_la_SOURCES = LAVar.h LAVar.C Delta.h Delta.C LRASolver.h LRASolver.C LAArray.h LAArray.C LARow.h LARow.C LAColumn.h LAColumn.C
if WANT_LIBRARY
include_HEADERS = Delta.h LAArray.h LAColumn.h LARow.h LAVar.h LRASolver.h
endif
私はそれをこのように変更:
noinst_LTLIBRARIES = liblrasolver.la
AM_CPPFLAGS=$(config_includedirs) `pkg-config --cflags ibex`
AM_LDFLAGS=`pkg-config --libs ibex` -lblas -llapack
liblrasolver_la_SOURCES = LAVar.h LAVar.C Delta.h Delta.C LRASolver.h LRASolver.C LAArray.h LAArray.C LARow.h LARow.C LAColumn.h LAColumn.C
if WANT_LIBRARY
include_HEADERS = Delta.h LAArray.h LAColumn.h LARow.h LAVar.h LRASolver.h
endif
はコンパイルするアイベックスソースと一緒に提供される汎用のMakefileを調べて、この修正に来ましたアイベックスプロジェクト:
SRCS=$(wildcard *.cpp)
BINS=$(SRCS:.cpp=)
CXXFLAGS := $(shell pkg-config --cflags ibex)
LIBS := $(shell pkg-config --libs ibex) -lblas -llapack
ifeq ($(DEBUG), yes)
CXXFLAGS := $(CXXFLAGS) -O0 -g -pg -Wall -frounding-math
else
CXXFLAGS := $(CXXFLAGS) -O3 -DNDEBUG -Wno-deprecated -frounding-math
endif
all: $(BINS)
% : %.cpp
$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o [email protected] $< $(LIBS)
clean:
rm -f $(BINS)
[OK]を、autoreconfは作品だけでなく、./configureを(その出力は、私はすでに疑わしい見つけた「アイベックス」を語ることはありませんが)。しかし、失敗は失敗する。ヘッダーが見つかりません