1
我一直在研究C++中的跨平臺庫。我一直在Windows(MinGW/msys)和Ubuntu(g ++)編譯,它編譯沒有任何錯誤。「多重定義」的錯誤報告
我剛拿到Kubuntu的電腦上。當我嘗試編譯它時,出現一些錯誤,說我對某些變量有多個定義。這些變量在頭文件中定義爲extern
,並在一行中定義爲一行。
./libAoTK.a(aotk_unix.o):/home/rickard/c++/AoTK/src/aotk_unix.cpp:16: multiple definition of `AoTK::disp'
./libAoTK.a(aotk_unix.o):/home/rickard/c++/AoTK/src/aotk_unix.cpp:12: first defined here
在aotk_unix.cpp該碼具有disp
只有一個定義,並在線路12和16有至disp
沒有引用。
我不明白爲什麼它無法鏈接,而完全相同的代碼在另一個* nix機器上編譯得很好。
什麼版本的GCC,成功和失敗,從而沒有覆蓋在歸檔中存在的文件,? –
您確定該鏈接與/home/richard/...../aotk_unix.cpp文件相同嗎? –
我剛剛檢出了github存儲庫,並能夠成功地構建測試。嘗試'make clean'並重建。 – bdonlan