[lttng-dev] linking C++ modules against lttng-ust libraries
Gerlando Falauto
gerlando.falauto at keymile.com
Mon May 12 10:53:54 EDT 2014
Hi,
I am trying to link a C++ application against lttng-ust, with a simple
test case, and I get the following error message upon linking:
main.cpp:109: undefined reference to `_lttng_ust_tracef(char const*, ...)'
where main.cpp reads:
...
13: #include <lttng/tracef.h>
...
109: tracef("my message, this integer %d", 1234);
...
The following seems to fix my problem:
diff --git a/include/lttng/tracef.h b/include/lttng/tracef.h
index 16a984b..98338d8 100644
--- a/include/lttng/tracef.h
+++ b/include/lttng/tracef.h
@@ -23,6 +23,10 @@
* SOFTWARE.
*/
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#include <lttng/lttng-ust-tracef.h>
extern
@@ -35,4 +39,8 @@ void _lttng_ust_tracef(const char *fmt, ...);
_lttng_ust_tracef(fmt, ## __VA_ARGS__); \
} while (0)
+#ifdef __cplusplus
+}
+#endif
+
#endif /* _LTTNG_UST_TRACEF_H */
But since I've noticed in the history that this whole C guard has been
reworked several times lately, I have no idea whether this is a good
idea or not.
Don't know if this has any relevance or anything, but both lttng-ust
(along with its dependencies) and my test application are being
cross-compiled.
Hints?
Thank you,
Gerlando
More information about the lttng-dev
mailing list