Code::Blocks Forums

User forums => Using Code::Blocks => Topic started by: BlubBlub on February 09, 2010, 11:15:29 pm

Title: Create a static library
Post by: BlubBlub on February 09, 2010, 11:15:29 pm
hey guys (:

I use the wizard for creating a static library.
In the main.c file there is a little sample which I compiled:

Code
int SampleAddInt(int i1, int i2)
{
    return i1 + i2;
}

// A function doing nothing ;)
void SampleFunction1()
{
    // insert code here
}

// A function always returning zero
int SampleFunction2()
{
    // insert code here
   
    return 0;
}


I tried it and it worked ( I got a .a file ) But when I want to use it in a project like:

Code
#include <iostream>

using namespace std;

int main()
{
cout << SampleAddInt ( 12, 14 ) << endl ;
}

I get an error:
Quote
'SimpleAddInt' was not declared in this scope
I linked the .a file, but it didn“t work. :S

Can somebody help me ?
Title: Re: Create a static library
Post by: oBFusCATed on February 09, 2010, 11:20:25 pm
Yes, read/learn what a header file is/does.
Title: Re: Create a static library
Post by: Jenna on February 09, 2010, 11:24:45 pm
Yes, read/learn what a header file is/does.

And how to mix C and C++ sources/libs.
Title: Re: Create a static library
Post by: BlubBlub on February 09, 2010, 11:35:11 pm
Yes, read/learn what a header file is/does.

I know what header files do.

And how to mix C and C++ sources/libs.

Do you mean extern "C" ?
Can you be more specific ?  :(

I have a guess:

Code
#ifndef MAIN_H
#define MAIN_H

extern "C"
int SampleAddInt(int, int ) ;

#endif

It works, but is it that what you meant ?
Title: Re: Create a static library
Post by: Jenna on February 09, 2010, 11:51:52 pm
Quote
#ifdef __cplusplus
extern "C" {
#endif
at the top of the header and

Quote
#ifdef __cplusplus
}
#endif
at the bottom.

So you can use the same header with C and C++-sources.
Title: Re: Create a static library
Post by: BlubBlub on February 09, 2010, 11:57:19 pm
thanks jens for your help  :)