News:

Accounts with zero posts and zero activity during the last months will be deleted periodically to fight SPAM!

Main Menu

Create a static library

Started by BlubBlub, February 09, 2010, 11:15:29 PM

Previous topic - Next topic

BlubBlub

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 ?

oBFusCATed

Yes, read/learn what a header file is/does.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Jenna

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.

BlubBlub

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 ?

Jenna

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.

BlubBlub