我试图将基本数组包装器模板类编译成.o文件,试图找出如何制作动态库.但是,在编译源代码时
g++ -std=c++0x -c array.cpp
Run Code Online (Sandbox Code Playgroud)
生成的文件只有~650字节.我用nm检查了文件,发现它包含的唯一符号是
00000001 r _ZStL13allocator_arg
00000000 r _ZStL19piecewise_construct
Run Code Online (Sandbox Code Playgroud)
这似乎是C++ 11编译的特性,因为在没有-std = c ++ 0x标志的情况下编译时它们就消失了.
尝试使用命令编译程序测试代码
g++ -std=c++0x -o tester tester.cpp array.cpp
Run Code Online (Sandbox Code Playgroud)
为array.cpp中的所有内容生成链接器错误,但否则会干净地编译.
老实说,我不知道这是怎么回事.如果您怀疑这是我的代码本身的问题,而不是我如何编译它,我可以发布array.cpp和array.hpp的内容.