How to use a self created library and the default *.lib in Keil C ? and which and how to setup a default *.lib such as the following - c51s.lib ? c51L.lib ? c51c.lib ? ======================================= i have create a header file myfirst.h ======================================= #pragma SAVE #pragma REGPARMS extern char returndummychar(void); #pragma RESTORE ======================================== and the source code myfirst.c ======================================== char returndummychar(void) { return('a'); } ======================================== I compile the file and have myfirst.obj ======================================== lib51 create myfirst.lib lib51 add myfirst.obj to myfirst.lib ============================================ All the above steps are done. now, how to include the myfirst.lib in a new C project ?? Thank you very much !
Hi Simon, simply add the *.lib to your project. With the one difference. As extension choose *.lib and as file type library file. Ready for use ! Stefan
I add the myfirst.lib to my project named maintest . maintest.c =================== #include <myfirst.h> void main(void) { unsigned char i,b; for (i=0;i<100;i++) { b=myfirst(); } } Linker .... WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL : MYFIRST MODULE : MAINTEST.OBJ (MAINTEST) WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL SYMBOL : MYFIRST MODULE : MAINTEST.OBJ (MAINTEST) ADDRESS : 0007H "MAINTEST" - O ERRORS, 2 WARNINGS WHY? Please help !
myfirst.h ========================== #pragma SAVE #pragma REGPARMS extern char myfirst(void); #pragma RESTORE myfirst.c ========================= char myfirst(void) { return('a'); } ========================= lib51 add myfirst.obj to myfirst.lib ========================= I add the myfirst.lib to my project folder named maintest . maintest.c =================== #include <myfirst.h> void main(void) { unsigned char i,b; for (i=0;i<100;i++) { b=myfirst(); } } Linker .... WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL : MYFIRST MODULE : MAINTEST.OBJ (MAINTEST) WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL SYMBOL : MYFIRST MODULE : MAINTEST.OBJ (MAINTEST) ADDRESS : 0007H "MAINTEST" - O ERRORS, 2 WARNINGS WHY? Please help !
I add the myfirst.lib to my project folder named maintest. Did you add the .LIB file to the project and not just to the project folder? The linker needs to know the name of the library file. Also, make sure that you specify libraries last in your project. Refer to http://www.keil.com/support/docs/1220.htm for more information about that. Jon
View all questions in Keil forum