cxx: Fix a linking issue.

Fix "undefined reference to `sigrok::EnumValue<sigrok::LogLevel,
sr_loglevel>::_values'", which happens at least when using clang(++),
e.g. on Linux, Mac OS X, or FreeBSD.

This fixes bug #534.

Thanks to Uffe Jakobsen and Martin Ling for reporting and investigating!
This commit is contained in:
Uwe Hermann 2015-01-26 15:26:15 +01:00
parent 19643b96e2
commit dc7125bb7c
1 changed files with 1 additions and 1 deletions

View File

@ -138,7 +138,7 @@ for enum, (classname, classbrief) in classes.items():
file=code) file=code)
# Define map of enum values to constants # Define map of enum values to constants
print('template<> const std::map<const enum %s, const %s * const> EnumValue<%s, enum %s>::_values = {' % ( print('template<> const SR_API std::map<const enum %s, const %s * const> EnumValue<%s, enum %s>::_values = {' % (
enum_name, classname, classname, enum_name), file=code) enum_name, classname, classname, enum_name), file=code)
for name, trimmed_name in zip(member_names, trimmed_names): for name, trimmed_name in zip(member_names, trimmed_names):
print('\t{%s, %s::%s},' % (name, classname, trimmed_name), file=code) print('\t{%s, %s::%s},' % (name, classname, trimmed_name), file=code)