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:

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:

#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
Quote from: oBFusCATed on February 09, 2010, 11:20:25 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
Quote from: oBFusCATed on February 09, 2010, 11:20:25 PM
Yes, read/learn what a header file is/does.

I know what header files do.

Quote from: jens on February 09, 2010, 11:24:45 PM
And how to mix C and C++ sources/libs.

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

I have a guess:


#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  :)