次のコードがあります。
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
ここで、 andを使用してクラスを共有ライブラリにコンパイルしたいと考えました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