|
Asm/C++/Delphi/Py/PHP/VBA
|
||||||
Ссылка на неразрешенный внешний символ __divti3 (при делении __int128)09.03.2019, 00:22. Показов 2918. Ответов 21
Метки нет (Все метки)
error LNK2019: ссылка на неразрешенный внешний символ __divti3 в функции main.Как можно это исправить?
0
|
||||||
| 09.03.2019, 00:22 | |
|
Ответы с готовыми решениями:
21
Ссылка на неразрешенный внешний символ Ошибка LNK 2019: ссылка на неразрешенный внешний символ Блокировка кнопки PrtScr: "ссылка на неразрешенный внешний символ _main" |
|
|
||
| 09.03.2019, 19:55 | ||
|
а в чём сложность сделать ассемблерную вставку и использовать в ней соответствующие регистры?
0
|
||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||
| 09.03.2019, 19:59 [ТС] | ||
|
Проблема, например, кроссплатформенность. В ARM x64, вероятно, тоже есть __int128. Может, ещё где-то. Плюс параметры по-разному передаются в Windows и Linux (хотя это мелочи). Ну и т.д. Можно интринсики использовать, как вариант. Только я их не могу найти тоже для умножения (64*64=128 бит) и деления (128/64=64 бита). Но и с проблемой __divti3 / __udivti3 хочу всё равно разобраться...
0
|
||
|
Мозгоправ
|
|
| 09.03.2019, 20:43 | |
|
Онлайн-компилятор https://rextester.com кушает вашу программу без проблем.
Подозреваю, что не хватвет либо какого-то дефайна, либо ключа компиляции, либо библиотеки. Почитайте доки на ваш компилятор и стандартную библиотеку.
0
|
|
|
|
||
| 09.03.2019, 20:56 | ||
|
Попробовал на своей машине на clang'е - он цепляет библиотеку libgcc. Т.е. библиотеку поддержки gcc. И в этом смысле поставка clang получается неполноценная, т.к. зависит от чужой библиотеки. Я в clang'е плохо разбираюсь, но подозреваю, что в случае ТС речь идёт о какой-то неполноценной поставке clang'а. Либо, если clang по определению должен использовать библиотеки от gcc, то речь идёт о том, что поставка clang'а сделана поверх поставки gcc, в которой, например, отсутствует поддержка __int128 Jin X, на этой же самой машине gcc такой код ест?
2
|
||
|
|
|||
| 10.03.2019, 13:06 | |||
|
Добавлено через 1 час 1 минуту И ещё опцию -Wl,-t (тут всё слитно, включая запятую)
1
|
|||
|
|
|
| 10.03.2019, 17:07 | |
|
А... у тебя под винду. Тут ничего не могу сказать. Скорее всего линковка идёт с родными виндовсовскими библиотеками. Очевидно, что там libgcc отсутствует
Как вариант собери gcc в 64-разрядном режиме под линукс. Дальше выдели в сборке то место, где собирается модуль с функцией __divti3, получи его препроцессор, очисти от мусора и включи к себе в проект
0
|
|
|
Asm/C++/Delphi/Py/PHP/VBA
|
||||||||
| 10.03.2019, 17:13 [ТС] | ||||||||
|
Похожая история с интринсиком
__umulh в GCC:
g++ -m64 -s -O2 -Wl,-t -v 2.cpp -o 2.exe
Хотя шланг нормально компилит. Вот ёлы-палы!
0
|
||||||||
|
|
|
| 10.03.2019, 17:18 | |
|
Есть готовый препроцессированный исходник, но не под интел, но little endian и в режиме 64. В теории разницы не должно быть никакой, т.к. в этом месте нет машинно-зависимых фич. Попробуй для начала его, если лень возиться со сборкой gcc
Исходник данного модуля тут: https://github.com/gcc-mirror/... /libgcc2.c Функция в нём называется __divdi3, но в каком-то из хидеров через макрос оно переопределится в __divti3. В этом же файле можно выудить недостающий массив __clz_tab
0
|
|
|
|
||
| 10.03.2019, 17:25 | ||
|
Вообще gcc и clang под винду - это изначально какая-то сложнопросекаемая хрень, так что многим вещам удивляться не следует Добавлено через 2 минуты __umulh, судя по описанию, можно будет заменить на это: C uint64 __umulh(uint64 a, uint64 b) { __uint128 aa = a; __uint128 bb = b; __uint128 cc = a * b; return (uint64)(cc >> 64); }
1
|
||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||||
| 10.03.2019, 20:43 [ТС] | ||||
|
Добавлено через 9 минут Интересно вообще, отчего такой косяк может быть? У других людей спрашиваю – у них всё ок. На tio.run пробую – тоже.
0
|
||||
|
|
|||||
| 10.03.2019, 21:09 | |||||
|
1
|
|||||
|
Asm/C++/Delphi/Py/PHP/VBA
|
|||||
| 11.03.2019, 00:18 [ТС] | |||||
|
0
|
|||||
|
|
||||||
| 11.03.2019, 09:50 | ||||||
|
В каком каталоге он находится? Если в каком-нибудь "стандартном" виндозовом или msvc'ном, то это хидер микрософтовский adxintrin.h ammintrin.h avx2intrin.h avx5124fmapsintrin.h avx5124vnniwintrin.h avx512bwintrin.h avx512cdintrin.h avx512dqintrin.h avx512erintrin.h avx512fintrin.h avx512ifmaintrin.h avx512ifmavlintrin.h avx512pfintrin.h avx512vbmiintrin.h avx512vbmivlintrin.h avx512vlbwintrin.h avx512vldqintrin.h avx512vlintrin.h avx512vpopcntdqintrin.h avxintrin.h bmi2intrin.h bmiintrin.h bmmintrin.h clflushoptintrin.h clwbintrin.h clzerointrin.h emmintrin.h f16cintrin.h fma4intrin.h fmaintrin.h fxsrintrin.h ia32intrin.h immintrin.h lwpintrin.h lzcntintrin.h mmintrin.h mwaitxintrin.h nmmintrin.h pkuintrin.h pmmintrin.h popcntintrin.h prfchwintrin.h rdseedintrin.h rtmintrin.h sgxintrin.h shaintrin.h smmintrin.h tbmintrin.h tmmintrin.h wmmintrin.h x86intrin.h xmmintrin.h xopintrin.h xsavecintrin.h xsaveintrin.h xsaveoptintrin.h xsavesintrin.h xtestintrin.h Совсем не удивлюсь, если выяснится, что в виндовой поставке они тоже есть. С точностью до разницы в версиях gcc (от версии к версии они могли что-то менять)
1
|
||||||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||||||||||
| 11.03.2019, 10:44 [ТС] | ||||||||||
|
Добавлено через 3 минуты
0
|
||||||||||
|
|
|||
| 11.03.2019, 11:55 | |||
|
0
|
|||
|
Asm/C++/Delphi/Py/PHP/VBA
|
||
| 11.03.2019, 14:22 [ТС] | ||
|
Добавлено через 18 секунд Но я гляну, что там в архиве
0
|
||
|
|
||
| 11.03.2019, 15:40 | ||
|
0
|
||
| 11.03.2019, 15:40 | |
|
Помогаю со студенческими работами здесь
20
Неразрешенный внешний символ "__imp__closesocket@4 Статическая структура в классе: Неразрешенный внешний символ Неразрешенный внешний символ "_calloc_dbg" Ссылка на неразрешенный внешний символ Ссылка на неразрешенный внешний символ _WTSQuerySessionInformationW@20 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|