hi !
i'm using Kdevelop 3.3.1(Using KDE 3.5.1-2.3 Red Hat).
i have 2 files demo.c and BkTransLib.h, 1 shared library libbktrans.so.0.0
// demo.c
#include "BkTransLib.h"
int main() {
if (BKInit()) printf("Start BkTransLib ok\n");
else {
printf("Start BkTransLib Fail\n");
return 0;
}
}
//"BkTransLib.h"
int BKInit();
and libbktrans.so.0.0 is a shared library contains function BKInit()
i put libbktrans.so.0.0 in /usr/local/lib, make two links here
ln -sf libbktrans.so.0.0 libbktrans.so.0
ln -sf libbktrans.so.0 libbktrans.so
now i create a C project with Automake Manager, add the two files into it and build the project. Of course, i get an error: "undefined reference to BKInit()".it's because i haven't not added my shared library into the project.
To fix this, i open Automake Manager and select the project line, right-click and select Options from the drop menu. Choose the Library tab, in the second box("Link library outside project(LDADD)"), add -lbktrans.
rebuild the project -->Success
execute program, i get
Start BkTransLib ok
Press Enter to continue!
well, perfect !
Now i modify demo.c to create demo.cpp
//demo.cpp
#include "BkTransLib.h"
#include <qwhatsthis.h>
int main() {
if (BKInit()) qWarning( "Start BkTransLib ok\n" );
else {
qWarning("Start BkTransLib Fail\n");
return 0;
}
}
then i create a C++ project (C++ --> KDE --> Simple KDE Application), add demo.cpp and BkTransLib.h into it. Once again i get the error "undefined reference...". so i do the same as the C project. unluckily, the error does not disappear.
i don't know why, i even follow the direction of FAQ at
http://www.kdevelop.org/mediawiki/index.…_.so_library.3F
1. add -lbktrans in "link libraries outside of project" like above
2. add -L/usr/local/lib to the LDFLAGS in Project->Project Options...->Configure Options->Linker Flags(LDFLAGS)
3. add -I/usr/local/lib to the "Directories outside of project" in the tab Include
rebuild but nothing changes.
Please tell me what.
Thank you.