Я скачал ЛЕДА ссылка на сайт
но когда я делаю make install, возникает проблема: директория incl / LEDA / INCLUDE не существует.
Это makefile
SHELL=/bin/sh
cc = $(shell basename $(CURDIR))
sys = $(shell cmd/leda.sys)
instdir = /LEDA/INSTALL/$(sys)/$(cc)
default: lib
kernel:
./kernel_config
$(MAKE) lib xlman
all: lib tests
install: FORCE
cp -r -L incl /LEDA/INSTALL/$(sys)
if [ -f leda.lib ]; then cp leda.lib $(instdir); fi
if [ -f leda.dll ]; then cp leda.dll $(instdir); fi
if [ -f libleda.a ]; then cp libleda.a $(instdir); fi
if [ -f libleda.so ]; then cp libleda.so $(instdir); fi
FORCE: lib
#------------------------------------------------------------------------------
# libraries
#------------------------------------------------------------------------------
lib: .license
@if [ -f .license -a -d src ]; then $(MAKE) -C src; fi
@if [ -f .license -a -d src1 ]; then $(MAKE) -C src1; fi
@if [ -f .license -a -f closelib ]; then ./closelib; fi
@if [ -f .license -a -f static.mk ]; then $(MAKE) static; fi
@if [ -f .license -a -f shared.mk ]; then $(MAKE) shared; fi
touch:
@if [ -f .license -a -d src ]; then $(MAKE) -C src touch; fi
@if [ -f .license -a -d src1 ]; then $(MAKE) -C src1 touch; fi
@if [ -f .license -a -f static.mk ]; then $(MAKE) static; fi
@if [ -f .license -a -f shared.mk ]; then $(MAKE) shared; fi
nogui: .license
mv libleda.a libleda.a.gui
mv libleda.so libleda.so.gui
mv src/graphics src/graphics_
mv src1/graphics src1/graphics_
$(MAKE) touch
mv src/graphics_ src/graphics
mv src1/graphics_ src1/graphics
mv libleda.a libleda.so no_gui
mv libleda.a.gui libleda.a
mv libleda.so.gui libleda.so
gui: .license
$(MAKE) touchlib0: .license
@if [ -f .license -a -d src ]; then $(MAKE) -C src; fi
@if [ -f .license -a -f closelib ]; then ./closelib; fi
@if [ -f .license -a -f static.mk ]; then $(MAKE) static; fi
@if [ -f .license -a -f shared.mk ]; then $(MAKE) shared; fi
lib1: .license
@if [ -f .license -a -d src1 ]; then $(MAKE) -C src1; fi
@if [ -f .license -a -f closelib ]; then ./closelib; fi
@if [ -f .license -a -f static.mk ]; then $(MAKE) static; fi
@if [ -f .license -a -f shared.mk ]; then $(MAKE) shared; fi
libL1:
cp libL.a libL1.a
mv src/system/_leda.o src/system/_leda_orig.o
$(MAKE) -C src/system -i L=L1 DFLAGS=-DLEDA_CHECK_LICENSE
mv src/system/_leda_orig.o src/system/_leda.o
agd:
$(MAKE) -C AGD
@if [ -f AGD/static.mk ]; then $(MAKE) -f AGD/static.mk; fi
@if [ -f AGD/shared.mk ]; then $(MAKE) -f AGD/shared.mk; fishared: .license
@if [ -f .license ]; then \
if [ -f shared.mk ]; then \
echo "$(MAKE) -f shared.mk"; $(MAKE) -f shared.mk; \
if [ -f libAGD.a ]; then \
echo "$(MAKE) -f shared.mk agd"; $(MAKE) -f shared.mk agd; fi; \
else echo "Not configured to build shared libs."; fi; fi
static: .license
@if [ -f .license ]; then $(MAKE) -f static.mk; fi.license:
@/bin/sh confdir/util/unix/license.sh#------------------------------------------------------------------------------
# programs
#------------------------------------------------------------------------------
xlman: .license
@if [ -f .license ]; then \
echo "$(MAKE) -C demo/xlman "; $(MAKE) -C demo/xlman; fi
static_xlman: .license
@if [ -f .license ]; then \
echo "$(MAKE) -C demo/xlman "; $(MAKE) -C demo/xlman static_xlman; fi
demos: .license
@if [ -f .license ]; then \
if [ -d demo ]; then $(MAKE) -C demo; fi; fi
tests: .license
@if [ -f .license ]; then \
if [ -d test ]; then $(MAKE) -C test; fi; fi
#------------------------------------------------------------------------------
# manual
#------------------------------------------------------------------------------
man: .license
@if [ -f .license ]; then \
echo "$(MAKE) -C Manual/MANUAL ";\
$(MAKE) -C Manual/MANUAL; fi
pdfman: .license
@if [ -f .license ]; then \
echo "$(MAKE) -C Manual/MANUAL pdf";\
$(MAKE) -C Manual/MANUAL pdf; fi
dvi: .license
@if [ -f .license ]; then \
echo "$(MAKE) -C Manual/MANUAL dvi";\
$(MAKE) -C Manual/MANUAL dvi; fi#------------------------------------------------------------------------------
# cleaning up
#------------------------------------------------------------------------------
del:
@if [ -d src ]; then $(MAKE) -C src clean; fi
@if [ -d src1 ]; then $(MAKE) -C src1 clean; fi
@if [ -d prog ]; then $(MAKE) -C prog del; fi
@if [ -d test ]; then $(MAKE) -C test del; fi
@if [ -d demo ]; then $(MAKE) -C demo del; fi
rm -f lib*.a lib*.so lib*.sl lib*.lib leda.dll leda.lib
clean:
@if [ -d src ]; then $(MAKE) -C src clean; fi
@if [ -d src1 ]; then $(MAKE) -C src1 clean; fi
@if [ -d prog ]; then $(MAKE) -C prog clean; fi
@if [ -d test ]; then $(MAKE) -C test clean; fi
@if [ -d demo ]; then $(MAKE) -C demo clean; fi
и это руководство по установке
********************************************************************
* *
* LEDA *
* *
* UNIX OBJECT CODE INSTALLATION *
* *
********************************************************************Remark: This file describes the situation in a LEDA package.1. Files and Directories
------------------------
To compile and link your programs with LEDA, the LEDA main directory
should contain at least the following files and subdirectories:
Readme.txt Readme File
Install/unix.txt this file
incl/ the LEDA include directory
libleda.a (libleda.so) basic library
The static library has extension .a. If a shared library is provided
it has extension .so.2. Preparations
---------------
Unpacking the LEDA distribution file
LEDA-<ver>-<sys>-<cc>.tar.gz will create the LEDA root
directory "LEDA-<ver>-<sys>-<cc>". You might want to rename
it or move it to some different place. Let <LEDA> denote the final
complete path name of the LEDA root directory.
To install and use the Unix object code of LEDA you have to modify
your environment as follows:
a) LEDAROOT:
Set the environment variable LEDAROOT to the LEDA root directory:
csh/tcsh: setenv LEDAROOT <LEDA>
sh/bash: LEDAROOT=<LEDA>
export LEDAROOT
b) Command Search Path:
Include $LEDAROOT/Manual/cmd into your command search path
(environment variable path (csh) or PATH (sh)) and call rehash (if
required by your system).
c) Shared Library: (for solaris, linux, irix, osf1)
If you planning to use shared libraries include $LEDAROOT into the
LD_LIBRARY_PATH search path. Then go to $LEDAROOT and type
make shared. This will construct the shared libraries from the static
libraries.
Please note: Building the shared library is not supported on each
platform.
d) xlman and demos: Go to $LEDAROOT and type make xlman to compile
and link LEDA's interactive manual reader xlman. Now you can start
xlman for reading and printing manual pages, starting demo programs
and browsing more release notes.3. Compiling and linking application programs
---------------------------------------------
a) Use the -I compiler flag to tell the compiler where to find the
LEDA header files.
CC (g++) -I$LEDAROOT/incl -c file.c
b) Use the -L compiler flag to tell the compiler where to find the
library (libleda.a/so)
CC (g++) -L$LEDAROOT file.o -lleda -lX11 -lm
If using windows on solaris systems you might have to link
with the system socket library and the network services library as
well:
CC (g++) ... -lleda -lX11 -lsocket -lnsl -lm
c) Compile and link simultaneously with
CC (g++) -I$LEDAROOT/incl -L$LEDAROOT file.c -lleda -lX11 -lm
You may want to ask your system adminstrator to install the header
files and library in the system's default directories.
Then you no longer have to specify header and library search paths on
the compiler command line.4. Example programs and demos
-----------------------------
The source code of all example and demo programs can be found in
$LEDAROOT/test and $LEDAROOT/demo. Goto $LEDAROOT/test or
$LEDAROOT/demo and type "make" to compile and link all test or demo
programs, respectively.5. User Manual
--------------
Postscript, PDF, and HTML versions of the manual are available at
http://www.algorithmic-solutions.com
Мне нужна общая библиотека. Но я не могу понять, как установить его. Я новичок в ЛЕДА. Можете ли вы помочь мне закончить объяснение шаг за шагом?
Если я поставлю make share, то результатом будет:
Не настроен для создания общих библиотек.
Что я могу сделать?
Makefile разветвляется на два других make-файла, в зависимости от того, какая у вас библиотека (статическая (всегда должна быть) или общая). Ваш вывод предполагает, что у вас нет подходящей общей библиотеки ни в одном из мест, где находится make-файл. Вы добавили переменную? $LEDAROOT
в LD_LIBRARY_PATH
(под sh / bash:export LD_LIBRARY_PATH="$LEDAROOT:$LD_LIBRARY_PATH"
) как указано в руководстве по установке (раздел 2.c.)?
В противном случае стоит попробовать построить с make static
, Только после того, как эта сборка успешно завершена,make install
сможет работать.
Других решений пока нет …