我正在嘗試將一個基本的數組包裝模板類編譯爲一個.o文件,試圖找出如何製作動態庫。但是,編譯源代碼時g ++生成空目標文件
g++ -std=c++0x -c array.cpp
生成的文件只有〜650字節。我研究了與納米該文件,並發現它含有唯一的符號是
00000001 r _ZStL13allocator_arg
00000000 r _ZStL19piecewise_construct
這似乎是C++ 11彙編的特徵,因爲當沒有-std =的C++ 0x標誌它們編譯不見了。
試圖編譯程序測試代碼和所有命令
g++ -std=c++0x -o tester tester.cpp array.cpp
產生鏈接錯誤,在array.cpp的一切,但,否則編譯乾淨。
我真的不知道這是怎麼回事。我可以發佈array.cpp和array.hpp的內容,如果你懷疑這是我的代碼本身的問題,而不是我如何編譯它。
你想編譯一個沒有實際根據的模板? – ildjarn 2012-02-15 22:34:09
模板不像代碼生成工具那樣多。只有實際的代碼被編譯。 – 2012-02-15 22:35:12
它在tester.cpp中實例化,如數組;我只試圖在沒有tester.cpp的情況下進行編譯,以便弄清爲什麼儘管所有的函數都在.cpp中,但是爲什麼我要用第二個(按時間順序排列的第一個)編譯命令來獲取鏈接器錯誤。 –
2012-02-15 22:36:53