Неразрешенная внешняя ссылка [дубликат]

Martin Fowler Рефакторинг: Улучшение Дизайна Существующего Кода было уже перечислено. Но я детализирую, почему это повлияло на меня.

сущность целой книги о структурировании кода так, чтобы было более просто читать и понять люди . Это учит меня сильно, что код, который я пишу, предназначен для моих коллег и преемников, чтобы использовать и возможно изучить что-то хороший из него. Это вдохновляет меня к сознательно программа в способе, который оставляет людей, хвалящих мое имя, и не проклинающих меня к проклятию для всей вечности .

6
задан Community 23 May 2017 в 10:28
поделиться

3 ответа

Отсутствует символ __imp__htonl @ 4 , измененное имя C ++ для htonl, функции, которая преобразует длинное значение из хоста в сетевой порядок. @ 4 используется для изменения входных параметров и является частью поддержки C ++ для перегруженных функций, чтобы позволить компоновщику разрешить правильную функцию без конфликтов имен.

Убедитесь, что вы связаны с сетевой библиотекой, которой вы являетесь. ссылаясь на этот символ из. Предположительно, ваш пакет использует какое-то специальное определение этого символа вместо МАКРОСА, как обычно.

5
ответ дан 17 December 2019 в 00:12
поделиться

Вы уверены, что подписи совпадают? Обязательно проверьте наличие подписи и постоянство. Также убедитесь, что функции не встроены.

1
ответ дан 17 December 2019 в 00:12
поделиться

Я столкнулся с этой ошибкой, когда компилировал с библиотекой, а затем изменил библиотеку перед линковкой. Убедитесь, что ваши заголовки соответствуют заголовкам, предоставляемым вашей библиотекой (не скопированы из другой архитектуры и т.д.). Конечно, убедитесь, что вы компонуете с ws2_32.lib (-lws2_32 для mingw/gcc).

Кроме того, если вы используете GCC/mingw, вы можете взглянуть на это: Ошибка компоновщика MinGW: winsock

1
ответ дан 17 December 2019 в 00:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: