我有以下代码:
namespace rm { namespace lib { class Object { public: Object() {printf("Hi\n");} }; } }
现在我想用g++ -Wall -Wno-unused -Werror -fPIC -g -Iinclude/ -c -O0 -o object.o object.cpp
和编译一个共享库g++ --shared -o librm.so object.o
.编译工作没有问题,但在检查结果库后nm librm.so | c++filt
,rm::lib::Object::Object()
无处可寻.即使启用-Wextra,GCC也不会发出警告.
G ++版本是(Raspbian 4.9.2-10)4.9.2
类中定义的代码隐式标记为inline
(并且未使用),因此不保存在文件中.