Dear list,
There are many step by step sites to add repositories, externals, libraries and do other configuration. But what usually drops me down is that magic word "make".
Where could be the important points to understand and finish every "make" process my self?
Why lot's of "make" files are bad for my computer but, perhaps works fine for others?
Do I necessarily need to learn C++ to prepare pd work properly and have all libraries for my needs and "make, make, make" ?
What is wrong this time? (see terminal output) Thanks for help and time you take for it.
:~/Downloads/pix_opencv$ ./configure checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking whether make sets $(MAKE)... yes checking for working aclocal... found checking for working autoconf... found checking for working automake... found checking for working autoheader... found checking for working makeinfo... found rm -f pix_opencv*.o rm -f pix_opencv*.pd_linux i686-pc-linux-gnu checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for strerror in -lcposix... no checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking for gcc option to accept ANSI C... none needed checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for a BSD-compatible install... /usr/bin/install -c checking whether make sets $(MAKE)... (cached) yes checking whether build environment is sane... yes checking whether to enable maintainer-specific portions of Makefiles... no checking if malloc debugging is wanted... no looking for pd sources (required) ... pd source tree not found... install it and use the --with-pd=<path> configuration option.
:~/Downloads/pix_opencv$ make clean rm -f pix_opencv*.o rm -f pix_opencv*.pd_linux
:~/Downloads/pix_opencv$ make
g++ -fPIC -DPD -O2 -funroll-loops -fomit-frame-pointer -ffast-math
-Wall -W -Wno-unused -Wno-parentheses -Wno-switch
-DGEM_OPENCV_VERSION="0.2" -g -DLINUX -I/usr/local/pd/src -I.
-I/usr/local/pd/gem/src -I/usr/local/pd/src pkg-config --cflags opencv
-o pix_opencv_edge.o -c pix_opencv_edge.cc
In file included from pix_opencv_edge.cc:18:
pix_opencv_edge.h:27:28: error: Base/GemPixObj.h: No such file or directory
In file included from pix_opencv_edge.cc:18:
pix_opencv_edge.h:42: error: expected initializer before ‘:’ token
pix_opencv_edge.cc:20: error: expected constructor, destructor, or
type conversion before ‘(’ token
pix_opencv_edge.cc:49: error: expected constructor, destructor, or
type conversion before ‘::’ token
pix_opencv_edge.cc:64: error: ‘pix_opencv_edge’ has not been declared
pix_opencv_edge.cc:64: error: variable or field ‘processRGBAImage’ declared void
pix_opencv_edge.cc:64: error: ‘imageStruct’ was not declared in this scope
pix_opencv_edge.cc:64: error: ‘image’ was not declared in this scope
make: *** [pix_opencv_edge.o] Error 1
:~/Downloads/pix_opencv$ sudo make
[sudo] password for hipis:
g++ -fPIC -DPD -O2 -funroll-loops -fomit-frame-pointer -ffast-math
-Wall -W -Wno-unused -Wno-parentheses -Wno-switch
-DGEM_OPENCV_VERSION="0.2" -g -DLINUX -I/usr/local/pd/src -I.
-I/usr/local/pd/gem/src -I/usr/local/pd/src pkg-config --cflags opencv
-o pix_opencv_edge.o -c pix_opencv_edge.cc
In file included from pix_opencv_edge.cc:18:
pix_opencv_edge.h:27:28: error: Base/GemPixObj.h: No such file or directory
In file included from pix_opencv_edge.cc:18:
pix_opencv_edge.h:42: error: expected initializer before ‘:’ token
pix_opencv_edge.cc:20: error: expected constructor, destructor, or
type conversion before ‘(’ token
pix_opencv_edge.cc:49: error: expected constructor, destructor, or
type conversion before ‘::’ token
pix_opencv_edge.cc:64: error: ‘pix_opencv_edge’ has not been declared
pix_opencv_edge.cc:64: error: variable or field ‘processRGBAImage’ declared void
pix_opencv_edge.cc:64: error: ‘imageStruct’ was not declared in this scope
pix_opencv_edge.cc:64: error: ‘image’ was not declared in this scope
make: *** [pix_opencv_edge.o] Error 1
On 2010-04-12 19:45, Gintaras Lau. wrote:
Dear list,
There are many step by step sites to add repositories, externals, libraries and do other configuration. But what usually drops me down is that magic word "make".
Where could be the important points to understand and finish every "make" process my self?
i guess the most important part is to not be afraid to read what the computer tells you.
Why lot's of "make" files are bad for my computer but, perhaps works fine for others?
because computers are very different. the simplest solution i can think of is, that "make" would download an ISO-image from the web, wipe your harddisk and install a mirror of the developers system. in most cases, you (as a user) probably don't want that.
Do I necessarily need to learn C++ to prepare pd work properly and have all libraries for my needs and "make, make, make" ?
no
What is wrong this time? (see terminal output) Thanks for help and time you take for it.
:~/Downloads/pix_opencv$ ./configure checking build system type... i686-pc-linux-gnu
[...]
checking if malloc debugging is wanted... no looking for pd sources (required) ... pd source tree not found... install it and use the --with-pd=<path> configuration option.
not it say very clearly, that it was looking for "pd sources (required)" and that it was not able to find them. and that you should install them yourself and then tell the configure script where to find them with the "--with-pd" flag to configure.
"required" indicates, that it will not be able to successfully build without them.
:~/Downloads/pix_opencv$ make clean rm -f pix_opencv*.o rm -f pix_opencv*.pd_linux
:~/Downloads/pix_opencv$ make
however, even though you are missing an essential part (the pd-sources), you happily continue to compile.
not very surprisingly, it fails (your are missing the essential pd-sources)
g++ -fPIC -DPD -O2 -funroll-loops -fomit-frame-pointer -ffast-math -Wall -W -Wno-unused -Wno-parentheses -Wno-switch -DGEM_OPENCV_VERSION="0.2" -g -DLINUX -I/usr/local/pd/src -I. -I/usr/local/pd/gem/src -I/usr/local/pd/src
pkg-config --cflags opencv
-o pix_opencv_edge.o -c pix_opencv_edge.cc In file included from pix_opencv_edge.cc:18: pix_opencv_edge.h:27:28: error: Base/GemPixObj.h: No such file or directory
as a matter of fact, it doesn't fail because of missing Pd-sources, but because of missing Gem-sources.
configure would have told you, that those are required as well, but it stopped first to tell you that the (equally important) Pd-sources are missing.
:~/Downloads/pix_opencv$ sudo make [sudo] password for hipis: g++ -fPIC -DPD -O2 -funroll-loops -fomit-frame-pointer -ffast-math -Wall -W -Wno-unused -Wno-parentheses -Wno-switch -DGEM_OPENCV_VERSION="0.2" -g -DLINUX -I/usr/local/pd/src -I. -I/usr/local/pd/gem/src -I/usr/local/pd/src
pkg-config --cflags opencv
-o pix_opencv_edge.o -c pix_opencv_edge.cc In file included from pix_opencv_edge.cc:18: pix_opencv_edge.h:27:28: error: Base/GemPixObj.h: No such file or directory In file included from pix_opencv_edge.cc:18:
even super-cow powers did not manage to find the Gem-sources.
now seriously: when you try to compile things, and things fail, then you should try to find out why they fail. usually you are given hints! a good idea is to look at the last couple of lines, try to understand what they say and whether they say that some problem occured. if a problem occured and those lines give you a hint how to fix the problem, think whether you can possibly fullfill these hints. most often you might be able to just fix the problem; e.g. in the example above, you could easily install the Pd-sources and point configure to it. sometimes it is impossible. e.g. the configure script for a spaceship-launcher could fail because it detected that you don't have any spaceships left.
if you are clueless about the last lines in the output (e.g. the output of "make" in your example) try to scroll upwards until you find the first occurence of the keyword "error" or similar (there are often a lot of lines between the actual error and the last line of the output - mainly because the compilation process has to cleanup whatever it was doing in order to give you a useable (and expectable) system) and try to understand what it says. in your case it said "error: Base/GemPixObj.h: No such file or directory" telling you that there is an error, about a missing file, and this file is named "Base/GemPixObj.h" this mainly tells you that you have forgotten to install a certain file or that make was just not able to find the very file on your 2TB harddisk; with a bit of intuition, luck and magic you could even guess what is missing. e.g. "GemPixObj" sounds like it is related to "Gem" (indeed it is part of Gem), to "Pix" (pixel processing) and to "Obj" (whatever that means).
fgmasdr IOhannes
Hi all
Just a few words on the matter (not at all trying to be complete), but I try to summarize what I've learned, that might help figuring out some issues:
contains some hints about dependencies and how to configure/compile the source package correctly.
if something is required but not found, you probably need to install 'it' or tell the configure script where to find 'it'.
generated. Sometimes you find an 'autogen.sh' script, that will do that for you. Sometimes you're supposed to that yourself by performing: $ aclocal $ autoconf You will quickly find out, whether this is the way to go, since aclocal and autoconf will tell you, if they didn't find the necessary files. If they don't, you're probably not supposed to use this tools in order to create a ./configure script.
compiled by simply doing $ make At the least there needs to be a 'makefile', which is a script that is executed by 'make'. Sometimes this makefile needs to be adapted to point to the correct headers of a certain dependency.
successfully and all the headers are found, really _only_ then you should proceed and do 'make'.
error. If you see an error appearing the end of the output, you can be sure, that something went wrong. The reason might be found further up in the output. Usually the initial reason can be found in the first 'error' message. Often it is something like: bla.h: No such file or directory This can have various reasons with various solutions. The file 'bla.h' might not be installed at all. Or it is installed at a location that is not found by make or your sources point to a different location. On debian based systems you can install apt-file and after an initial 'sudo apt-file update' you can search, which package contains 'bla.h': $ apt-file search bla.h Often the solution is simply to install the package that comes with 'bla.h'. Then you can try 'make' again.
the problem (try to google the first line with the 'error'. Often, it is a problem with versions, i.e. the the sources you want to compile depend on a version of a certain library that isn't yet in the repository of your distro. In some cases there is no way around compiling some other stuff first before compiling your initial sources.
If you still have troubles with compiling, ask the mailing list.
If the maintainer is not answering an no one else is able to help, try
to contact the maintainer.
at all.
Roman
On Mon, 2010-04-12 at 20:45 +0300, Gintaras Lau. wrote:
Dear list,
There are many step by step sites to add repositories, externals, libraries and do other configuration. But what usually drops me down is that magic word "make".
Where could be the important points to understand and finish every "make" process my self?
Why lot's of "make" files are bad for my computer but, perhaps works fine for others?
Do I necessarily need to learn C++ to prepare pd work properly and have all libraries for my needs and "make, make, make" ?
What is wrong this time? (see terminal output) Thanks for help and time you take for it.
:~/Downloads/pix_opencv$ ./configure checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking whether make sets $(MAKE)... yes checking for working aclocal... found checking for working autoconf... found checking for working automake... found checking for working autoheader... found checking for working makeinfo... found rm -f pix_opencv*.o rm -f pix_opencv*.pd_linux i686-pc-linux-gnu checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for strerror in -lcposix... no checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking for gcc option to accept ANSI C... none needed checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for a BSD-compatible install... /usr/bin/install -c checking whether make sets $(MAKE)... (cached) yes checking whether build environment is sane... yes checking whether to enable maintainer-specific portions of Makefiles... no checking if malloc debugging is wanted... no looking for pd sources (required) ... pd source tree not found... install it and use the --with-pd=<path> configuration option.
:~/Downloads/pix_opencv$ make clean rm -f pix_opencv*.o rm -f pix_opencv*.pd_linux
:~/Downloads/pix_opencv$ make g++ -fPIC -DPD -O2 -funroll-loops -fomit-frame-pointer -ffast-math -Wall -W -Wno-unused -Wno-parentheses -Wno-switch -DGEM_OPENCV_VERSION="0.2" -g -DLINUX -I/usr/local/pd/src -I. -I/usr/local/pd/gem/src -I/usr/local/pd/src
pkg-config --cflags opencv
-o pix_opencv_edge.o -c pix_opencv_edge.cc In file included from pix_opencv_edge.cc:18: pix_opencv_edge.h:27:28: error: Base/GemPixObj.h: No such file or directory In file included from pix_opencv_edge.cc:18: pix_opencv_edge.h:42: error: expected initializer before ‘:’ token pix_opencv_edge.cc:20: error: expected constructor, destructor, or type conversion before ‘(’ token pix_opencv_edge.cc:49: error: expected constructor, destructor, or type conversion before ‘::’ token pix_opencv_edge.cc:64: error: ‘pix_opencv_edge’ has not been declared pix_opencv_edge.cc:64: error: variable or field ‘processRGBAImage’ declared void pix_opencv_edge.cc:64: error: ‘imageStruct’ was not declared in this scope pix_opencv_edge.cc:64: error: ‘image’ was not declared in this scope make: *** [pix_opencv_edge.o] Error 1:~/Downloads/pix_opencv$ sudo make [sudo] password for hipis: g++ -fPIC -DPD -O2 -funroll-loops -fomit-frame-pointer -ffast-math -Wall -W -Wno-unused -Wno-parentheses -Wno-switch -DGEM_OPENCV_VERSION="0.2" -g -DLINUX -I/usr/local/pd/src -I. -I/usr/local/pd/gem/src -I/usr/local/pd/src
pkg-config --cflags opencv
-o pix_opencv_edge.o -c pix_opencv_edge.cc In file included from pix_opencv_edge.cc:18: pix_opencv_edge.h:27:28: error: Base/GemPixObj.h: No such file or directory In file included from pix_opencv_edge.cc:18: pix_opencv_edge.h:42: error: expected initializer before ‘:’ token pix_opencv_edge.cc:20: error: expected constructor, destructor, or type conversion before ‘(’ token pix_opencv_edge.cc:49: error: expected constructor, destructor, or type conversion before ‘::’ token pix_opencv_edge.cc:64: error: ‘pix_opencv_edge’ has not been declared pix_opencv_edge.cc:64: error: variable or field ‘processRGBAImage’ declared void pix_opencv_edge.cc:64: error: ‘imageStruct’ was not declared in this scope pix_opencv_edge.cc:64: error: ‘image’ was not declared in this scope make: *** [pix_opencv_edge.o] Error 1
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
Thanks everyone for this, I wish I had it 7 years ago!
With respect, pp
-----Original Message----- From: pd-list-bounces@iem.at [mailto:pd-list-bounces@iem.at] On Behalf Of Roman Haefeli Sent: Tuesday, April 13, 2010 5:55 AM To: Gintaras Lau. Cc: iem Subject: Re: [PD] "make" pix_opencv
Hi all
Just a few words on the matter (not at all trying to be complete), but I try to summarize what I've learned, that might help figuring out some issues:
contains some hints about dependencies and how to configure/compile the source package correctly.
if something is required but not found, you probably need to install 'it' or tell the configure script where to find 'it'.
generated. Sometimes you find an 'autogen.sh' script, that will do that for you. Sometimes you're supposed to that yourself by performing: $ aclocal $ autoconf You will quickly find out, whether this is the way to go, since aclocal and autoconf will tell you, if they didn't find the necessary files. If they don't, you're probably not supposed to use this tools in order to create a ./configure script.
compiled by simply doing $ make At the least there needs to be a 'makefile', which is a script that is executed by 'make'. Sometimes this makefile needs to be adapted to point to the correct headers of a certain dependency.
successfully and all the headers are found, really _only_ then you should proceed and do 'make'.
error. If you see an error appearing the end of the output, you can be sure, that something went wrong. The reason might be found further up in the output. Usually the initial reason can be found in the first 'error' message. Often it is something like: bla.h: No such file or directory This can have various reasons with various solutions. The file 'bla.h' might not be installed at all. Or it is installed at a location that is not found by make or your sources point to a different location. On debian based systems you can install apt-file and after an initial 'sudo apt-file update' you can search, which package contains 'bla.h': $ apt-file search bla.h Often the solution is simply to install the package that comes with 'bla.h'. Then you can try 'make' again.
the problem (try to google the first line with the 'error'. Often, it is a problem with versions, i.e. the the sources you want to compile depend on a version of a certain library that isn't yet in the repository of your distro. In some cases there is no way around compiling some other stuff first before compiling your initial sources.
If you still have troubles with compiling, ask the mailing list.
If the maintainer is not answering an no one else is able to help, try
to contact the maintainer.
at all.
Roman
On Mon, 2010-04-12 at 20:45 +0300, Gintaras Lau. wrote:
Dear list,
There are many step by step sites to add repositories, externals, libraries and do other configuration. But what usually drops me down is that magic word "make".
Where could be the important points to understand and finish every "make" process my self?
Why lot's of "make" files are bad for my computer but, perhaps works fine for others?
Do I necessarily need to learn C++ to prepare pd work properly and have all libraries for my needs and "make, make, make" ?
What is wrong this time? (see terminal output) Thanks for help and time you take for it.
:~/Downloads/pix_opencv$ ./configure checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking whether make sets $(MAKE)... yes checking for working aclocal... found checking for working autoconf... found checking for working automake... found checking for working autoheader... found checking for working makeinfo... found rm -f pix_opencv*.o rm -f pix_opencv*.pd_linux i686-pc-linux-gnu checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for strerror in -lcposix... no checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking for gcc option to accept ANSI C... none needed checking how to run the C preprocessor... gcc -E checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for ANSI C header files... yes checking for a BSD-compatible install... /usr/bin/install -c checking whether make sets $(MAKE)... (cached) yes checking whether build environment is sane... yes checking whether to enable maintainer-specific portions of Makefiles... no checking if malloc debugging is wanted... no looking for pd sources (required) ... pd source tree not found... install it and use the --with-pd=<path> configuration option.
:~/Downloads/pix_opencv$ make clean rm -f pix_opencv*.o rm -f pix_opencv*.pd_linux
:~/Downloads/pix_opencv$ make g++ -fPIC -DPD -O2 -funroll-loops -fomit-frame-pointer -ffast-math -Wall -W -Wno-unused -Wno-parentheses -Wno-switch -DGEM_OPENCV_VERSION="0.2" -g -DLINUX -I/usr/local/pd/src -I. -I/usr/local/pd/gem/src -I/usr/local/pd/src
pkg-config --cflags opencv
-o pix_opencv_edge.o -c pix_opencv_edge.cc In file included from pix_opencv_edge.cc:18: pix_opencv_edge.h:27:28: error: Base/GemPixObj.h: No such file or directory In file included from pix_opencv_edge.cc:18: pix_opencv_edge.h:42: error: expected initializer before ‘:’ token pix_opencv_edge.cc:20: error: expected constructor, destructor, or type conversion before ‘(’ token pix_opencv_edge.cc:49: error: expected constructor, destructor, or type conversion before ‘::’ token pix_opencv_edge.cc:64: error: ‘pix_opencv_edge’ has not been declared pix_opencv_edge.cc:64: error: variable or field ‘processRGBAImage’ declared void pix_opencv_edge.cc:64: error: ‘imageStruct’ was not declared in this scope pix_opencv_edge.cc:64: error: ‘image’ was not declared in this scope make: *** [pix_opencv_edge.o] Error 1:~/Downloads/pix_opencv$ sudo make [sudo] password for hipis: g++ -fPIC -DPD -O2 -funroll-loops -fomit-frame-pointer -ffast-math -Wall -W -Wno-unused -Wno-parentheses -Wno-switch -DGEM_OPENCV_VERSION="0.2" -g -DLINUX -I/usr/local/pd/src -I. -I/usr/local/pd/gem/src -I/usr/local/pd/src
pkg-config --cflags opencv
-o pix_opencv_edge.o -c pix_opencv_edge.cc In file included from pix_opencv_edge.cc:18: pix_opencv_edge.h:27:28: error: Base/GemPixObj.h: No such file or directory In file included from pix_opencv_edge.cc:18: pix_opencv_edge.h:42: error: expected initializer before ‘:’ token pix_opencv_edge.cc:20: error: expected constructor, destructor, or type conversion before ‘(’ token pix_opencv_edge.cc:49: error: expected constructor, destructor, or type conversion before ‘::’ token pix_opencv_edge.cc:64: error: ‘pix_opencv_edge’ has not been declared pix_opencv_edge.cc:64: error: variable or field ‘processRGBAImage’ declared void pix_opencv_edge.cc:64: error: ‘imageStruct’ was not declared in this scope pix_opencv_edge.cc:64: error: ‘image’ was not declared in this scope make: *** [pix_opencv_edge.o] Error 1
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list