I hav开发者_StackOverflow社区e to call a c function declared in a lib file from c++. What instructions/attributes/configuration I have to set for this?
Do you have a header file for the library? If so it should have
extern "C" {
blah blah
}
stuff in it to allow it to be used by C programs. If not, then you can put that around the include statement for the header in your own code. E.g.
extern "C" {
#include "imported_c_library.h"
}
ensure you put extern "C" before the declaration of the function if it isn't already in the header.
If you're writing the header files yourself, it's often nice to do something like this
#ifdef __cplusplus
extern "C" {
#endif
...
#ifdef __cplusplus
}
#endif
so that this gets ignored by your c compiler, but picked up by c++ one. Incidentally, for a good discussion of why you need this, check out
Why do we need extern "C"{ #include <foo.h> } in C++?
精彩评论