С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12

Ссылка на неразрешенный внешний символ __divti3 (при делении __int128)

09.03.2019, 00:22. Показов 2839. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
int main()
{
  volatile __int128 x = 1, y = 1;
  x /= y;
  return 0;
}
Вот такой простой код при компиляции clang (x64) выдаёт error LNK2019: ссылка на неразрешенный внешний символ __divti3 в функции main.
Как можно это исправить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.03.2019, 00:22
Ответы с готовыми решениями:

Ссылка на неразрешенный внешний символ
Уважаемые форумчане, помогите пожалуйста разобраться с данной проблемой: Не кидайтесь тапками я в плюсах пока совсем новичек. ...

Ошибка LNK 2019: ссылка на неразрешенный внешний символ
Нужно реализовать структуру данных стек в трех файлах: lib.h(объявление), lib.cpp(описание), main.cpp(тестовая программа). Написал весь...

Блокировка кнопки PrtScr: "ссылка на неразрешенный внешний символ _main"
Здравствуйте, подскажите не работает блокировка PrtScr. Ошибка 1>MSVCRTD.lib(crtexe.obj) : error LNK2019: ссылка на неразрешенный...

21
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
09.03.2019, 19:55
Цитата Сообщение от Jin X Посмотреть сообщение
Как можно это исправить?
как я понял шаблон для int128 есть только в gcc (в visual studio он тоже зарезервирован, но в стандарт языка не включен).
а в чём сложность сделать ассемблерную вставку и использовать в ней соответствующие регистры?
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12
09.03.2019, 19:59  [ТС]
Цитата Сообщение от _lunar_ Посмотреть сообщение
а в чём сложность сделать ассемблерную вставку и использовать в ней соответствующие регистры?
В Clang ещё. С ним как раз эта ошибка и возникла.
Проблема, например, кроссплатформенность. В ARM x64, вероятно, тоже есть __int128. Может, ещё где-то.
Плюс параметры по-разному передаются в Windows и Linux (хотя это мелочи). Ну и т.д. Можно интринсики использовать, как вариант.
Только я их не могу найти тоже для умножения (64*64=128 бит) и деления (128/64=64 бита).

Но и с проблемой __divti3 / __udivti3 хочу всё равно разобраться...
0
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
09.03.2019, 20:43
Онлайн-компилятор https://rextester.com кушает вашу программу без проблем.
Подозреваю, что не хватвет либо какого-то дефайна, либо ключа компиляции, либо библиотеки.
Почитайте доки на ваш компилятор и стандартную библиотеку.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
09.03.2019, 20:56
Цитата Сообщение от _lunar_ Посмотреть сообщение
как я понял шаблон для int128
Тут речь идёт о встроенном в GNU C типе __int128. В gcc часть операций над этим типом (в том числе и деление) реализована в виде функций run-time поддержки и помещается в библиотеку libgcc

Попробовал на своей машине на clang'е - он цепляет библиотеку libgcc. Т.е. библиотеку поддержки gcc. И в этом смысле поставка clang получается неполноценная, т.к. зависит от чужой библиотеки. Я в clang'е плохо разбираюсь, но подозреваю, что в случае ТС речь идёт о какой-то неполноценной поставке clang'а. Либо, если clang по определению должен использовать библиотеки от gcc, то речь идёт о том, что поставка clang'а сделана поверх поставки gcc, в которой, например, отсутствует поддержка __int128

Jin X, на этой же самой машине gcc такой код ест?
2
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12
09.03.2019, 23:01  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
Jin X, на этой же самой машине gcc такой код ест?
Да, ест.
Обновлю GCC и Clang, вдруг, заработает

Добавлено через 1 час 8 минут
Не помогло
Evg, а у вас компилируется этот код?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.03.2019, 13:06
Цитата Сообщение от Jin X Посмотреть сообщение
Не помогло
Так ты покажи хоть, какие приказы запускал, желательно с опцией -v

Цитата Сообщение от Jin X Посмотреть сообщение
Evg, а у вас компилируется этот код?
Компилируется и линкуется. В посте #4 тоже

Добавлено через 1 час 1 минуту
И ещё опцию -Wl,-t (тут всё слитно, включая запятую)
1
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12
10.03.2019, 15:50  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
Так ты покажи хоть, какие приказы запускал, желательно с опцией -v
clang -O2 -Wl,-t -v 1.cpp -o 1.exe
clang version 7.0.1 (tags/RELEASE_701/final)
Target: x86_64-pc-windows-msvc
Thread model: posix
InstalledDir: D:\Lang\CPP\LLVM\bin
"D:\\Lang\\CPP\\LLVM\\bin\\clang.exe " -cc1 -triple x86_64-pc-windows-msvc19.16.27027 -emit-obj -mincremental-linker-compatible -disable-free -disable-llvm-verifier -discard-value-names -main-file-name 1.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -momit-leaf-frame-pointer -v -resource-dir "D:\\Lang\\CPP\\LLVM\\lib\\clang\\7. 0.1" -internal-isystem "D:\\Lang\\CPP\\LLVM\\lib\\clang\\7.0.1\ \include" -internal-isystem "C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC \\14.16.27023\\include" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.17763.0\\ucrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17763.0\\shared" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17763.0\\um" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\include\\10.0.17763.0\\winrt" -O2 -fdeprecated-macro -fdebug-compilation-dir "D:\\5" -ferror-limit 19 -fmessage-length 0 -fno-use-cxa-atexit -fms-extensions -fms-compatibility -fms-compatibility-version=19.16.27027 -std=c++14 -fdelayed-template-parsing -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -vectorize-loops -vectorize-slp -o "C:\\Temp\\SYSTEM\\1-52e911.o" -x c++ 1.cpp
clang -cc1 version 7.0.1 based upon LLVM 7.0.1 default target x86_64-pc-win32
#include "..." search starts here:
#include <...> search starts here:
D:\Lang\CPP\LLVM\lib\clang\7.0.1\include
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.1 6.27023\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\shared
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\um
C:\Program Files (x86)\Windows Kits\10\include\10.0.17763.0\winrt
End of search list.
"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC \\14.16.27023\\bin\\HostX64\\x64\\link.e xe" -out:1.exe -defaultlib:libcmt "-libpath:C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Community\\VC\\Tools\\MSVC \\14.16.27023\\lib\\x64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.17763.0\\ucrt\\x64" "-libpath:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.17763.0\\um\\x64" -nologo -t "C:\\Temp\\SYSTEM\\1-52e911.o"
LINK : warning LNK4044: нераспознанный параметр "/t"; игнорируется
1-52e911.o : error LNK2019: ссылка на неразрешенный внешний символ __divti3 в функции main
1.exe : fatal error LNK1120: неразрешенных внешних элементов: 1
clang.exe: error: linker command failed with exit code 1120 (use -v to see invocation)
Добавлено через 2 минуты
Ключ -m64 забыл ещё, но то же самое будет, т.к. по умолчанию он и используется.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.03.2019, 17:07
А... у тебя под винду. Тут ничего не могу сказать. Скорее всего линковка идёт с родными виндовсовскими библиотеками. Очевидно, что там libgcc отсутствует

Как вариант собери gcc в 64-разрядном режиме под линукс. Дальше выдели в сборке то место, где собирается модуль с функцией __divti3, получи его препроцессор, очисти от мусора и включи к себе в проект
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12
10.03.2019, 17:13  [ТС]
Похожая история с интринсиком __umulh в GCC:
C++
1
2
3
4
5
6
#include <intrin.h>
...
int main()
{
  std::cout << __umulh(0x0123456789ABCDEF, 0xFEDCBA9876543210);
}
C:\Temp\SYSTEM\cchQsqRe.o:2.cpp.text.s tartup+0x1e): undefined reference to `__umulh'
collect2.exe: error: ld returned 1 exit status
g++ -m64 -s -O2 -Wl,-t -v 2.cpp -o 2.exe
Using built-in specs.
COLLECT_GCC=D:\Lang\CPP\mingw-w64\x86_64-8.1.0-win32-seh-rt_v6-rev0\mingw64\bin\g++.exe
COLLECT_LTO_WRAPPER=D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../src/gcc-8.1.0/configure --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --prefix=/mingw64 --with-sysroot=/c/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=win32 --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=nocona --with-tune=core2 --with-libiconv --with-system-zlib --with-gmp=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpfr=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-mpc=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-isl=/c/mingw810/prerequisites/x86_64-w64-mingw32-static --with-pkgversion='x86_64-win32-seh-rev0, Built by MinGW-W64 project' --with-bugurl=https://sourceforge.net/projects/mingw-w64 CFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/c/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' CPPFLAGS=' -I/c/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64/opt/include -I/c/mingw810/prerequisites/x86_64-zlib-static/include -I/c/mingw810/prerequisites/x86_64-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/c/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64/opt/lib -L/c/mingw810/prerequisites/x86_64-zlib-static/lib -L/c/mingw810/prerequisites/x86_64-w64-mingw32-static/lib '
Thread model: win32
gcc version 8.1.0 (x86_64-win32-seh-rev0, Built by MinGW-W64 project)
COLLECT_GCC_OPTIONS='-s' '-O2' '-v' '-o' '2.exe' '-shared-libgcc' '-mtune=core2' '-march=nocona'
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/libexec/gcc/x86_64-w64-mingw32/8.1.0/cc1plus.exe -quiet -v -iprefix D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/ -U_REENTRANT 2.cpp -quiet -dumpbase 2.cpp -mtune=core2 -march=nocona -auxbase 2 -O2 -version -o C:\Temp\SYSTEM\cc1Tteko.s
GNU C++14 (x86_64-win32-seh-rev0, Built by MinGW-W64 project) version 8.1.0 (x86_64-w64-mingw32)
compiled by GNU C version 8.1.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.18-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring duplicate directory "D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++"
ignoring duplicate directory "D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32"
ignoring duplicate directory "D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward"
ignoring duplicate directory "D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/8.1.0/include"
ignoring nonexistent directory "C:/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64C:/msys64/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../include"
ignoring duplicate directory "D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed"
ignoring duplicate directory "D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/lib/gcc/../../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include"
ignoring nonexistent directory "C:/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64/mingw/include"
#include "..." search starts here:
#include <...> search starts here:
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/backward
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/include-fixed
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/include
End of search list.
GNU C++14 (x86_64-win32-seh-rev0, Built by MinGW-W64 project) version 8.1.0 (x86_64-w64-mingw32)
compiled by GNU C version 8.1.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.18-GMP

GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 768151575aea5e2fb63ae2dd7f500530
COLLECT_GCC_OPTIONS='-s' '-O2' '-v' '-o' '2.exe' '-shared-libgcc' '-mtune=core2' '-march=nocona'
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/as.exe -v -o C:\Temp\SYSTEM\ccFOg7iQ.o C:\Temp\SYSTEM\cc1Tteko.s
GNU assembler version 2.30 (x86_64-w64-mingw32) using BFD version (GNU Binutils) 2.30
COMPILER_PATH=D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../libexec/gcc/:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/
LIBRARY_PATH=D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../lib/:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../
COLLECT_GCC_OPTIONS='-s' '-O2' '-v' '-o' '2.exe' '-shared-libgcc' '-mtune=core2' '-march=nocona'
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/collect2.exe -plugin D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/liblto_plugin-0.dll -plugin-opt=D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe -plugin-opt=-fresolution=C:\Temp\SYSTEM\ccJsAIMi.res -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt -plugin-opt=-pass-through=-ladvapi32 -plugin-opt=-pass-through=-lshell32 -plugin-opt=-pass-through=-luser32 -plugin-opt=-pass-through=-lkernel32 -plugin-opt=-pass-through=-liconv -plugin-opt=-pass-through=-lmingw32 -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lmoldname -plugin-opt=-pass-through=-lmingwex -plugin-opt=-pass-through=-lmsvcrt --sysroot=C:/mingw810/x86_64-810-win32-seh-rt_v6-rev0/mingw64 -m i386pep -Bdynamic -o 2.exe -s D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/crtbegin.o -LD:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0 -LD:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc -LD:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib -LD:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../lib -LD:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib -LD:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../.. -t C:\Temp\SYSTEM\ccFOg7iQ.o -lstdc++ -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -liconv -lmingw32 -lgcc_s -lgcc -lmoldname -lmingwex -lmsvcrt D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/crtend.o
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: mode i386pep
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/crt2.o
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/crtbegin.o
C:\Temp\SYSTEM\ccFOg7iQ.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/libstdc++.dll.a)d004685.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/libstdc++.dll.a)d004400.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/libstdc++.dll.a)d004398.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/libstdc++.dll.a)d001718.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/libstdc++.dll.a)d000000.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/libstdc++.dll.a)d005804.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-gccmain.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-natstart.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-wildcard.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-charmax.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-dllargv.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-gs_support.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-_newmode.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-tlssup.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-cinitexe.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-merr.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-CRT_fp10.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-mingw_helpers.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-pseudo-reloc.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-xtxtmode.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-crt_handler.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-tlsthrd.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-tlsmcrt.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-pseudo-reloc-list.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingw32.a)lib64_libmingw32_a-pesect.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/libgcc.a)_chkstk_ms.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/libgcc.a)_ctors.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmingwex.a)lib64_libmingwex_a-mingw_matherr.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmsvcrt.a)duags01243.o
...
...
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmsvcrt.a)duags00055.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmsvcrt.a)lib64_libmsvcrt_os_a-acrt_iob_func.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmsvcrt.a)lib64_libmsvcrt_os_a-invalid_parameter_handler.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmsvcrt.a)lib64_libmsvcrt_os_a-__p__acmdln.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmsvcrt.a)lib64_libmsvcrt_os_a-__p__fmode.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmsvcrt.a)duagh.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmsvcrt.a)duags00115.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmsvcrt.a)duags00083.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmsvcrt.a)duagt.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libkernel32.a)dqifs01445.o
...
...
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libkernel32.a)dqifs00268.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libkernel32.a)dqifh.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libkernel32.a)dqift.o
(D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/lib/../lib/libmsvcrt.a)duags00253.o
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/crtend.oC:\Temp\SYSTEM\ccFOg7iQ.o:2.cpp: (.text.startup+0x1e): undefined reference to `__umulh'
D:/Lang/CPP/mingw-w64/x86_64-8.1.0-win32-seh-rt_v6-rev0/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: link errors found, deleting executable `2.exe'
collect2.exe: error: ld returned 1 exit status
(однообразные строки вырезаны, т.к. не влезают в сообщение)

Хотя шланг нормально компилит. Вот ёлы-палы!
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.03.2019, 17:18
Есть готовый препроцессированный исходник, но не под интел, но little endian и в режиме 64. В теории разницы не должно быть никакой, т.к. в этом месте нет машинно-зависимых фич. Попробуй для начала его, если лень возиться со сборкой gcc

Исходник данного модуля тут: https://github.com/gcc-mirror/... /libgcc2.c
Функция в нём называется __divdi3, но в каком-то из хидеров через макрос оно переопределится в __divti3. В этом же файле можно выудить недостающий массив __clz_tab
Вложения
Тип файла: rar divdi3.rar (14.8 Кб, 2 просмотров)
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.03.2019, 17:25
Цитата Сообщение от Jin X Посмотреть сообщение
Похожая история с интринсиком __umulh в GCC
Название какое-то не gcc'шное. Вероятно поэтому его и нет в поставке gcc. Поиск в гугле по имени ведёт на деяния от микрософта. А gcc из mingw, судя по всему, цепляет свои библиотеки, а не виндузовые. Вероятно, поэтому clang в этом отношении ведёт себя ближе к MSVC, чем к gcc

Вообще 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
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12
10.03.2019, 20:43  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
Попробуй для начала его, если лень возиться со сборкой gcc
Что именно пробовать?

Цитата Сообщение от Evg Посмотреть сообщение
Название какое-то не gcc'шное.
Тем не менее, в intrin.h он присутствует. А вот _umul128 работает, так что придётся им заменять, а возвращаемый результат игнорировать (и тогда Clang выдаёт предупреждение warning: ignoring return value of function declared with const attribute [-Wunused-value]).

Цитата Сообщение от Evg Посмотреть сообщение
__umulh, судя по описанию, можно будет заменить на это:
Можно. Но только при поддержке типа __int128, с которым могут быть проблемы (в том же MSVCPP).

Добавлено через 9 минут
Интересно вообще, отчего такой косяк может быть?
У других людей спрашиваю – у них всё ок. На tio.run пробую – тоже.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.03.2019, 21:09
Цитата Сообщение от Jin X Посмотреть сообщение
Что именно пробовать?
Добавить этот препроцессорный файл с исходником функции __divti3 к себе в проект, что ж ещё?

Цитата Сообщение от Jin X Посмотреть сообщение
Тем не менее, в intrin.h он присутствует
Этот файл чей? gcc'шный или msvc'шный? В линуксовой поставке gcc-7.3.0 такого хидера нет

Цитата Сообщение от Jin X Посмотреть сообщение
Интересно вообще, отчего такой косяк может быть?
Который из?

Цитата Сообщение от Jin X Посмотреть сообщение
У других людей спрашиваю – у них всё ок
С учётом того, что что-то строится поверх msvc, то проблема может быть в том, что у людей одна поставка msvc, а у тебя другая
1
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12
11.03.2019, 00:18  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
что ж ещё?
Он тащит за собой кучу других include'ов. Но в любом случае это не вариант. Разве что для теста, но что этот тест даст?

Цитата Сообщение от Evg Посмотреть сообщение
Этот файл чей? gcc'шный или msvc'шный? В линуксовой поставке gcc-7.3.0 такого хидера нет
Обоих, шланг его тоже знает. Как же тогда использовать интринсики в линуксе?

Цитата Сообщение от Evg Посмотреть сообщение
Который из?
Проблемы линковки. Больше волнует __int128 в Clang.

Цитата Сообщение от Evg Посмотреть сообщение
С учётом того, что что-то строится поверх msvc, то проблема может быть в том, что у людей одна поставка msvc, а у тебя другая
Clang использует что-то MSVC-шное (кроме MSVCRT.DLL)?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.03.2019, 09:50
Цитата Сообщение от Jin X Посмотреть сообщение
Он тащит за собой кучу других include'ов
В посте #11 я выложил препроцессированный вариант. Т.е. в нём нету ни одного инклюда

Цитата Сообщение от Jin X Посмотреть сообщение
Но в любом случае это не вариант. Разве что для теста, но что этот тест даст?
Я так понял, что у тебя в большом проекте не хватает именно __divti3. Если будет что-то ещё не хватать - добавишь ещё. Либо разбирайся, как заиметь компилятор в правильной комплектации

Цитата Сообщение от Jin X Посмотреть сообщение
Обоих, шланг его тоже знает
Как ты это определяешь?
В каком каталоге он находится? Если в каком-нибудь "стандартном" виндозовом или msvc'ном, то это хидер микрософтовский

Цитата Сообщение от Jin X Посмотреть сообщение
Как же тогда использовать интринсики в линуксе?
Вот список хидеров, присутствующих в линуксовом gcc-7.3.0 и содержащих "intrin" в своём имени:

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 (от версии к версии они могли что-то менять)

Цитата Сообщение от Jin X Посмотреть сообщение
Clang использует что-то MSVC-шное (кроме MSVCRT.DLL)?
Не знаю. В посте #8 я вижу строку линковки, которая под виндой. У себя в консоли я вижу строку линковки, которая под линуксом. По факту вижу, что под линуксом используется libgcc из поставки gcc. По факту вижу, что под виндой libgcc не используется, но при этом пути поиска настроены на внутренние пути MSVC. Дальше тыкаю пальцем в небо и делаю выводы, что clang как под линуксом, так и под виндой, использует внутренние файлы чужого компилятора. Зачем он так делает - хз. Может ли он без этого (т.е. иметь всё своё) - хз. Я clang'ом никогда не пользовался, а потому опыт работы с ним нулевой
1
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12
11.03.2019, 10:44  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
Совсем не удивлюсь, если выяснится, что в виндовой поставке они тоже есть.
Есть, спасибо. Значит, нужно подключать их, intrin.h как раз их и использует.

Добавлено через 3 минуты
Цитата Сообщение от Evg Посмотреть сообщение
В посте #11 я выложил препроцессированный вариант. Т.е. в нём нету ни одного инклюда
Как это нету?
C++
26
27
28
29
30
#include "tconfig.h"
#include "tsystem.h"
#include "coretypes.h"
#include "tm.h"
#include "libgcc_tm.h"
Цитата Сообщение от Evg Посмотреть сообщение
Я так понял, что у тебя в большом проекте не хватает именно __divti3. Если будет что-то ещё не хватать - добавишь ещё.
Это не очень большой проект, это просто "модуль" (cpp + h) для использования в дальнейшем. Поэтому такие "костыльные" решения – не вариант.

Цитата Сообщение от Evg Посмотреть сообщение
Либо разбирайся, как заиметь компилятор в правильной комплектации
Вот и пытаюсь понять, что не так...
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.03.2019, 11:55
Цитата Сообщение от Jin X Посмотреть сообщение
Как это нету?
Не ссылку на гитхаб, а аттач (вложение) с файлом divdi3.rar

Цитата Сообщение от Jin X Посмотреть сообщение
Поэтому такие "костыльные" решения – не вариант
Вполне себе вариант, если не хочешь возиться с комплектацией clang'а. Особенно, если твой модуль будут использовать другие, а проблема с clang'ом - это не уникальный случай у тебя на машине, а неприятность, которая может возникнуть и у других людей
0
Asm/C++/Delphi/Py/PHP/VBA
 Аватар для Jin X
6809 / 2049 / 238
Регистрация: 14.12.2014
Сообщений: 4,300
Записей в блоге: 12
11.03.2019, 14:22  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
Вполне себе вариант, если не хочешь возиться с комплектацией clang'а. Особенно, если твой модуль будут использовать другие, а проблема с clang'ом - это не уникальный случай у тебя на машине, а неприятность, которая может возникнуть и у других людей
Я думаю, что это редкий случай, которым можно пренебречь. А решать проблему с моим Clang мне всё равно нужно. У меня вообще будет проверка define'а а-ля *_ALLOW_INT128, т.к. без него вполне можно обойтись, а работать будет лишь чуть-чуть медленнее. Тем более, если делать кросс, то вариант без __int128 должен быть по-любому.

Добавлено через 18 секунд
Но я гляну, что там в архиве
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.03.2019, 15:40
Цитата Сообщение от Jin X Посмотреть сообщение
Я думаю, что это редкий случай, которым можно пренебречь
В какой-то мере редкий. Скорее всего большинство операций над int128 будет построено как встроенный код. Исключение составляют операции деления и взятия остатка (суммарно четыре функции, с учётом знаковости), т.к. их реализация ну очень длинная
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.03.2019, 15:40
Помогаю со студенческими работами здесь

Неразрешенный внешний символ "__imp__closesocket@4
Пишу вот такой код: #include &lt;Winsock2.h&gt; #include &lt;errno.h&gt; #include &lt;string&gt; enum CONNECTION_STATUS { ...

Статическая структура в классе: Неразрешенный внешний символ
Решил создать класс со статической структорой, выдает ошибку Ошибка 1 error LNK2001: неразрешенный внешний символ &quot;&quot;public:...

Неразрешенный внешний символ "_calloc_dbg"
Саламалекум, парни. Нужно написать программу, которая отрисовывала бы графики функций. Решение задачи уперлось в подбор подходящей либы....

Ссылка на неразрешенный внешний символ
вот что за проблема? нифига не могу понять .. error LNK2019: ссылка на неразрешенный внешний символ _GdiplusShutdown@4 в функции...

Ссылка на неразрешенный внешний символ _WTSQuerySessionInformationW@20
Добрый вечер. Код такой: bool CAddInNative::CallAsFunc(const long lMethodNum, tVariant* pvarRetValue, tVariant*...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru