Я работал над кроссплатформенной библиотекой на C ++. Я компилировал как в Windows (MinGW / msys), так и в Ubuntu (g ++), и он компилируется без ошибок.
Я только что получил руку на компьютере с Kubuntu. Когда я пытаюсь скомпилировать его там, я получаю несколько ошибок, говорящих о том, что у меня есть несколько определений для некоторых переменных. Эти переменные определены extern
в заголовочном файле и определены в одном cpp в одной строке.
./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-машине.