PDA

View Full Version : compiling source code



crazy_monkey108
06-21-2006, 06:32 AM
ok im kinda a noob and when i download a programs source code and want to compile it so i have the program i dont really know how to do it....wouldnt i have to find out what language its programmed in and then get that language and then copy the code into that and then compile the program? and if so how woul i go about getting those languages?

angor
06-21-2006, 12:20 PM
Hmm... your question has a rather large scope, but I'll try
to present a few pointers.

I assume that you're runnig Knoppix from CD (not installed
on your harddisk) and I further assume that your version of
Knoppix already provides a lot of the tools you need.

Very many (most?) programs are written in a language
called "C". The source you download from somewhere is usually
archived in a so-called "tar-ball" and comes as a file with the
name "bestprogramever.tar.bz2" or "...tbz2" or "...tar.gz" or
"...tgz".

- bestprogramever: the name of the program
- tar: it's an archive, needs to be unpacked
- bz2, gz: it's compressed and needs to be uncompressed

Depending on the compression method used you simply go to
where you saved the file (this is command line stuff, so you open
a console and "cd /to/the/file") and enter
<code>
tar xjf bestprogramever.tar.bz2
</code>
or
<code>
tar xzf bestprogramever.tar.gz
</code>

That leaves you with a directory named bestprogramever and you
cd there.

Most C-programs consist of many smallish files that end in ".c" and
".h". To compile these in the correct sequence requires rather
intimate knowledge of the program, so there is a central file called
"Makefile" where all this knowledge is stored. You could edit this
file in order to tweak the program (say, you'd want output on the
screen be green instead of white), but today there usually is a
further file that governs the Makefile: "configure".

Look for an executeable file of that name; if it's there type
<code>
./configure --help
</code>

You might encounter a line (among many) that says
--with-colour=COLOUR

So again you invoke configure, this time as
<code>
./configure --with-colour=green
</code>

If that succeeds, type
<code>
make
</code>

You should now have an executeable file called "bestprogramever".
Start it with
<code>
./bestprogramever
</code>
and enjoy!

Pay attention to the "./"part in some of the above commands:
it means "right here, not somewhere else on the system" and is needed.

To install the program to its proper place you'd have to run
<code>
make install
</code>
but you need to be root for that and also it will not get you far as
long as you are running from CD.

There are many, *MANY* more aspects to this subject, so this
is just a very minimalist starter. Try a few things and feel free
to come back with more specific questions!

WaKa
06-21-2006, 07:21 PM
Whoa - crazy monkey
check out which program it is here (http://en.wikipedia.org/wiki/List_of_hello_world_programs)
(A lot huh) then report back.

BTW, you need to love the Terminal alot (Shell - Konsole) to compile.
Tip: C, C++, java, lisp, perl, javascript and maybe fortran should be noted.

crazy_monkey108
06-21-2006, 08:35 PM
ok thank you ill fiddle around with that . oh and sorry for lack of detalis but im running knoppix 5.0.1 installed on a hard drive

crazy_monkey108
06-21-2006, 08:59 PM
ok so i cd'd to my flash drive location (cuz i have the file on my flash drive) and then i entered in <code> tar xjf pingus-0.6.0-binary-linux-i386(2).tar.bz2 </code> and hit enter and it said "bash: syntax eror near unexpected token '(' so i got rid of the '(2)' part of the filename and then all it said was bash: syntax error near unexpected token 'newline'. and i know this is probably a noobies question but whats wiht the <code> </code> tags? looks a lot like html to me...

RandomGoon
06-21-2006, 11:30 PM
Uh, not to sound harsh but the <code></code> tags were supposed to indicate "don't type this on the command line, just type what's contained within".

Most of the time people just use " information that's relevant " as the format but you get variations. Don't feel bad, it happens when you're new at things.

'Goon

crazy_monkey108
06-22-2006, 12:15 AM
lol thanks...wow that was a really stupid question...haha :oops:

crazy_monkey108
06-22-2006, 12:32 AM
lol thats awesome thanks. the game runs really slow but it runs and thats awesome thanks :P

crazy_monkey108
06-25-2006, 06:01 AM
ive recently noticed that many times when i try to run a makefile or something it will say "permission denied" whats wrong wtih that? im not positive but im pretty sure the same thing happened when i tried to run the file as root

crazy_monkey108
06-25-2006, 11:25 PM
ok now many times when i try to compile say a game i donwloaded or what have you i run ./configure and it works fine until the last line where it says
checking for X...configure: error: Can't find X includes. Please check your installation and add the corret paths!

what can i do to fix this?

angor
06-26-2006, 08:22 AM
>checking for X...configure: error: Can't find X includes.

apt-get install xorg-dev

You may need additional packages, but you definitly want this.

crazy_monkey108
06-27-2006, 09:36 PM
ok thanks...can i download that on my windows computer and then transfer it over to my linux computer via flash drive? cuz i think i have a bad modem or something cuz i havent been able to get my linux comp on the internet and im stuck with dial up out here on this hill :P
hmm one more thing....when i just typed it into root console to see what would happen it said

root@shanes_knoppix:~# apt-get install xorg-dev
reading package lists...Done
Building dependency tree... Done
Package xorg-dev is not available, but is referred to by another package.
This may mean that the package is missing, has been obseleted, or is only available from another source
E: Package xorg has no installation candidate

im pretty sure that just means it cant install the package cuz its not online to download the package right? or do i need to change something that is messed up?

angor
06-28-2006, 10:51 AM
hmm... I just tried and apt had no problem (it also wanted to install
about a ton other packages). Did you do an "apt-get update"
beforehand?

crazy_monkey108
07-04-2006, 04:41 AM
well dont i need to be online to download the updates?
(and i just now tried the apt-get update and all it did was give me a whole bunch of websites it couldnt connect to)

angor
07-04-2006, 07:52 AM
> well dont i need to be online to download the updates?

/me scratches his head...
Don't you think you'd have to be online anyway to "apt-get install ..."?
I must be missing something here.