我有以下代码:
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
答案 0 :(得分:5)
类中定义的代码隐式标记为null
(并且未使用),因此不保存在文件中。