Benjamin M. schrieb:
> Ich möchte eigene Lib's im Atmel Studio (Version 7) einbinden. Dazu bin
> ich wie folgt vorgeganggen:
> -Im Projektordner (eine Ebene tiefer als das Atmel .atsln file) habe ich
> einen Ordner "lib" angelegt.
> -In diesem habe ich mein .c und .h file abgelegt
Da ist keine Library im Spiel.
Du solltest C-Quelltext und Libraries auseinanderhalten.
Da Du beim Einbinden der Headerdatei einen relativen Pfad angibst, musst
Du Dein sogenanntes "library"-Verzeichnis nicht in den Compiler- bzw.
Projekteinstellungen angeben. Das ist nur dann nötig, wenn Du keinen
relativen Pfad verwendest.
> Error 1 undefined reference to `out(int)'
> Z:\test_lib_2\test_lib_2\Debug/.././test_lib_2.cpp 18 1 test_lib_2
Diese Fehlermeldung bekommst Du, weil Du die *.c-Datei in Deinem
sogenannten "Library"-Verzeichnis nicht zum Projekt hinzugefügt hast,
und obendrein, weil Du C- und C++-Code mischst.
Damit Du aus C++-Code heraus C-Funktionen verwenden kannst, musst Du
deren Deklarationen im "C"-Namensraum unterbringen, sonst versucht der
Compiler eine entsprechend benannte C++-Funktion aufzurufen, die wegen
des "name mangling" auf Linkerebene aber einen völlig anderen Namen
erhält als die C-Funktion.
Lass' das mit dem Mischen von C++- und C-Code erstmal einfach sein,
verwende nur *.c.