Shah Rukh Qasim Ответов: 1

Не удается скомпилировать в linux


Я хочу скомпилировать файл в linux. Когда я компилирую его в MS visual studio (windows), он работает довольно хорошо, но когда я пытаюсь компилировать в linux, выпуская команду:
"ССЗ channelassignment.cpp-я получаю следующие ошибки...

/tmp/ccLvTU1V.o: In function `CalculateAlgo1(Input*)':
channelassignment.cpp:(.text+0x5e): undefined reference to `operator new(unsigned int)'
channelassignment.cpp:(.text+0x238): undefined reference to `operator new(unsigned int)'
channelassignment.cpp:(.text+0x323): undefined reference to `operator delete(void*)'
channelassignment.cpp:(.text+0x337): undefined reference to `operator delete(void*)'
/tmp/ccLvTU1V.o: In function `g(Channel, Set<Node>*)':
channelassignment.cpp:(.text+0x35c): undefined reference to `operator new(unsigned int)'
channelassignment.cpp:(.text+0x46c): undefined reference to `operator delete(void*)'
/tmp/ccLvTU1V.o: In function `__static_initialization_and_destruction_0(int, int)':
channelassignment.cpp:(.text+0x497): undefined reference to `std::ios_base::Init::Init()'
channelassignment.cpp:(.text+0x49c): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccLvTU1V.o: In function `Node::Node()':
channelassignment.cpp:(.text._ZN4NodeC2Ev[_ZN4NodeC5Ev]+0x10): undefined reference to `operator new(unsigned int)'
channelassignment.cpp:(.text._ZN4NodeC2Ev[_ZN4NodeC5Ev]+0x35): undefined reference to `operator delete(void*)'
/tmp/ccLvTU1V.o: In function `Set<Channel>::Set()':
channelassignment.cpp:(.text._ZN3SetI7ChannelEC2Ev[_ZN3SetI7ChannelEC5Ev]+0x29): undefined reference to `operator new(unsigned int)'
/tmp/ccLvTU1V.o: In function `Set<Node>::Set()':
channelassignment.cpp:(.text._ZN3SetI4NodeEC2Ev[_ZN3SetI4NodeEC5Ev]+0x28): undefined reference to `operator new(unsigned int)'
/tmp/ccLvTU1V.o: In function `Set<Node>::CopySet(Set<Node> const*)':
channelassignment.cpp:(.text._ZN3SetI4NodeE7CopySetEPKS1_[Set<Node>::CopySet(Set<Node> const*)]+0x10): undefined reference to `operator new(unsigned int)'
channelassignment.cpp:(.text._ZN3SetI4NodeE7CopySetEPKS1_[Set<Node>::CopySet(Set<Node> const*)]+0x62): undefined reference to `operator delete(void*)'
/tmp/ccLvTU1V.o: In function `Set<double>::Set()':
channelassignment.cpp:(.text._ZN3SetIdEC2Ev[_ZN3SetIdEC5Ev]+0x22): undefined reference to `operator new(unsigned int)'
/tmp/ccLvTU1V.o: In function `Set<Node>::remove(Node const&)':
channelassignment.cpp:(.text._ZN3SetI4NodeE6removeERKS0_[Set<Node>::remove(Node const&)]+0x4b): undefined reference to `operator delete(void*)'
/tmp/ccLvTU1V.o: In function `Set<Channel>::insert(Channel const&, SetItr<Channel> const&)':
channelassignment.cpp:(.text._ZN3SetI7ChannelE6insertERKS0_RK6SetItrIS0_E[Set<Channel>::insert(Channel const&, SetItr<Channel> const&)]+0x18): undefined reference to `operator new(unsigned int)'
/tmp/ccLvTU1V.o: In function `Set<Channel>::remove(Channel const&)':
channelassignment.cpp:(.text._ZN3SetI7ChannelE6removeERKS0_[Set<Channel>::remove(Channel const&)]+0x4b): undefined reference to `operator delete(void*)'
/tmp/ccLvTU1V.o: In function `Set<Node>::insert(Node const&, SetItr<Node> const&)':
channelassignment.cpp:(.text._ZN3SetI4NodeE6insertERKS0_RK6SetItrIS0_E[Set<Node>::insert(Node const&, SetItr<Node> const&)]+0x18): undefined reference to `operator new(unsigned int)'
/tmp/ccLvTU1V.o:(.eh_frame+0x6b): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status


Кто-нибудь может мне помочь. Я хочу сделать несколько сильмуляций в OMNeT++; я не могу. Пожалуйста, помогите мне.

Richard MacCutchan

Похоже, что у вас отсутствуют некоторые системные библиотеки или компоновщик не может найти путь к вашим библиотекам.

Sergey Alexandrovich Kryukov

Возможно.
--СА

Richard MacCutchan

Или может быть -c опция не указана.

Member 2253416

привет Касим

не могли бы вы поделиться своим кодом назначения канала?

1 Ответов

Рейтинг:
1

Member 13056292

в linux для компиляции cpp:

1) Используйте g++ channelassignment.cpp,
об успешной компиляции,
./a.out будет выполняться.

2) назначение канала g++ -o channelassignment.cpp чтобы получить исполняемый файл с тем же именем, т. е.
./channelassignment


надеюсь, это поможет!