|
|
|
Linux64 - глюки при линковке
|
|||
|---|---|---|---|
|
#18+
Никто не встречался с таким глюком: Компилирую приложение под Linux64 - все OK. Добавляю новый каталог в пути поиска (пустой) - ошибка при линковке: [DCC Error] E2597 C:\BDX103\bin\ld-linux.exe: fatal error: no input files [DCC Fatal Error] F2588 Linker error code: 1 ($00000001) (Ошибки могут быть разные) Такое впечатление, что там ограничение на длину командной строки для линкера, а учитывая, что Delphi автоматом туда запихывает кучу "левых" каталогов, на нужные мне - уже не остается :( Как бы обойти? Ждать 10.4? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.04.2020, 10:37 |
|
||
|
Linux64 - глюки при линковке
|
|||
|---|---|---|---|
|
#18+
Maxim Rusov, проверь в Output - какая там на самом деле командная строка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 00:37 |
|
||
|
Linux64 - глюки при линковке
|
|||
|---|---|---|---|
|
#18+
Какая - длинная. Так - еще компилируется c:\bdx103\bin\dcclinux64.exe -$O- -LUTXSys --no-config -B -Q -TX.so -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults -DDEBUG -ES:\WrkLinux -IS:\WrkLinux;\Inc;\Libs;\RPC;\Auth;\Events;\Defense;\WrkDcu\Linux64;S:\0\Lib\20.0\Debug;c:\bdx103\lib\Linux64\release;S:\0\Imports;c:\bdx103\Imports;S:\0\Dcp\Linux64;c:\bdx103\include;c:\bdx103\redist\Linux64;S:\0\Bpl\Linux64 -LES:\0\Bpl\Linux64 -LNS:\0\Dcp\Linux64 -NUS:\WrkDcu\TXAuth\Linux64\Debug -NSSystem;System.Win;WinApi; -OS:\WrkLinux;\Inc;\Libs;\RPC;\Auth;\Events;\Defense;\WrkDcu\Linux64;S:\0\Lib\20.0\Debug;c:\bdx103\lib\Linux64\release;S:\0\Imports;c:\bdx103\Imports;S:\0\Dcp\Linux64;c:\bdx103\include;c:\bdx103\redist\Linux64;S:\0\Bpl\Linux64 -RS:\WrkLinux;\Inc;\Libs;\RPC;\Auth;\Events;\Defense;\WrkDcu\Linux64;S:\0\Lib\20.0\Debug;c:\bdx103\lib\Linux64\release;S:\0\Imports;c:\bdx103\Imports;S:\0\Dcp\Linux64;c:\bdx103\include;c:\bdx103\redist\Linux64;S:\0\Bpl\Linux64 -US:\WrkLinux;\Inc;\Libs;\RPC;\Auth;\Events;\Defense;\WrkDcu\Linux64;S:\0\Lib\20.0\Debug;c:\bdx103\lib\Linux64\release;S:\0\Imports;c:\bdx103\Imports;S:\0\Dcp\Linux64;c:\bdx103\include;c:\bdx103\redist\Linux64;S:\0\Bpl\Linux64 --syslibroot:C:\BDX103\SDK\ubuntu18.04.sdk --libpath:C:\BDX103\SDK\ubuntu18.04.sdk\usr\lib\gcc\x86_64-linux-gnu\7;C:\BDX103\SDK\ubuntu18.04.sdk\usr\lib\x86_64-linux-gnu;C:\BDX103\SDK\ubuntu18.04.sdk\lib\x86_64-linux-gnu -V -VN -NHS:\0\hpp\Linux64 -NOS:\WrkDcu\TXAuth\Linux64\Debug --drc TXAuth.dpr Done building project "TXAuth.dproj". А так - уже нет c:\bdx103\bin\dcclinux64.exe -$O- -LUTXSys --no-config -B -Q -TX.so -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults -DDEBUG -ES:\WrkLinux -IS:\WrkLinux;S:\Inc;S:\Libs;S:\RPC;S:\Auth;S:\Events;S:\Defense;S:\WrkDcu\Linux64;S:\0\Lib\20.0\Debug;c:\bdx103\lib\Linux64\release;S:\0\Imports;c:\bdx103\Imports;S:\0\Dcp\Linux64;c:\bdx103\include;c:\bdx103\redist\Linux64;S:\0\Bpl\Linux64 -LES:\0\Bpl\Linux64 -LNS:\0\Dcp\Linux64 -NUS:\WrkDcu\TXAuth\Linux64\Debug -NSSystem;System.Win;WinApi; -OS:\WrkLinux;S:\Inc;S:\Libs;S:\RPC;S:\Auth;S:\Events;S:\Defense;S:\WrkDcu\Linux64;S:\0\Lib\20.0\Debug;c:\bdx103\lib\Linux64\release;S:\0\Imports;c:\bdx103\Imports;S:\0\Dcp\Linux64;c:\bdx103\include;c:\bdx103\redist\Linux64;S:\0\Bpl\Linux64 -RS:\WrkLinux;S:\Inc;S:\Libs;S:\RPC;S:\Auth;S:\Events;S:\Defense;S:\WrkDcu\Linux64;S:\0\Lib\20.0\Debug;c:\bdx103\lib\Linux64\release;S:\0\Imports;c:\bdx103\Imports;S:\0\Dcp\Linux64;c:\bdx103\include;c:\bdx103\redist\Linux64;S:\0\Bpl\Linux64 -US:\WrkLinux;S:\Inc;S:\Libs;S:\RPC;S:\Auth;S:\Events;S:\Defense;S:\WrkDcu\Linux64;S:\0\Lib\20.0\Debug;c:\bdx103\lib\Linux64\release;S:\0\Imports;c:\bdx103\Imports;S:\0\Dcp\Linux64;c:\bdx103\include;c:\bdx103\redist\Linux64;S:\0\Bpl\Linux64 --syslibroot:C:\BDX103\SDK\ubuntu18.04.sdk --libpath:C:\BDX103\SDK\ubuntu18.04.sdk\usr\lib\gcc\x86_64-linux-gnu\7;C:\BDX103\SDK\ubuntu18.04.sdk\usr\lib\x86_64-linux-gnu;C:\BDX103\SDK\ubuntu18.04.sdk\lib\x86_64-linux-gnu -V -VN -NHS:\0\hpp\Linux64 -NOS:\WrkDcu\TXAuth\Linux64\Debug --drc TXAuth.dpr MSBUILD : error E2597: E2597 C:\BDX103\bin\ld-linux.exe: fatal error: no input files c:\bdx103\Bin\CodeGear.Delphi.Targets(402,5): error F2588: F2588 Linker error code: 1 ($00000001) В первом случае я чуток cэкономил убрав буквы диска: S:\Inc;S:\Libs;... -> \Inc;\Libs;... Причем это после того как я дохрена шаманил с путями. Изначально она гораздо длиннее была (С:\Users\Max\Documents\...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 01:31 |
|
||
|
Linux64 - глюки при линковке
|
|||
|---|---|---|---|
|
#18+
Maxim Rusov, По своему опыту скажу, что длина пусти на компилятор не влияет. Вот моя строка компиляции, почти в 2 раза длинее: c:\program files (x86)\embarcadero\studio\20.0\bin\dcclinux64.exe -$O- --no-config -M -Q -AGenerics.Collections=System.Generics.Collections;Generics.Defaults=System.Generics.Defaults -DDEBUG -E.\Linux64\Debug -I"c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug";"c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\release";C:\Users\user1\Documents\Embarcadero\Studio\20.0\Imports;"c:\program files (x86)\embarcadero\studio\20.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64;"c:\program files (x86)\embarcadero\studio\20.0\include";"c:\program files (x86)\embarcadero\studio\20.0\redist\Linux64";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64 -LEC:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64 -LNC:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64 -NU.\Linux64\Debug -NSSystem;Xml;Data;Datasnap;Web;Soap; -O"c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\release";C:\Users\user1\Documents\Embarcadero\Studio\20.0\Imports;"c:\program files (x86)\embarcadero\studio\20.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64;"c:\program files (x86)\embarcadero\studio\20.0\include";"c:\program files (x86)\embarcadero\studio\20.0\redist\Linux64";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64 -R"c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\release";C:\Users\user1\Documents\Embarcadero\Studio\20.0\Imports;"c:\program files (x86)\embarcadero\studio\20.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64;"c:\program files (x86)\embarcadero\studio\20.0\include";"c:\program files (x86)\embarcadero\studio\20.0\redist\Linux64";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64 -U"c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\debug";"c:\program files (x86)\embarcadero\studio\20.0\lib\Linux64\release";C:\Users\user1\Documents\Embarcadero\Studio\20.0\Imports;"c:\program files (x86)\embarcadero\studio\20.0\Imports";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Dcp\Linux64;"c:\program files (x86)\embarcadero\studio\20.0\include";"c:\program files (x86)\embarcadero\studio\20.0\redist\Linux64";C:\Users\Public\Documents\Embarcadero\Studio\20.0\Bpl\Linux64 --syslibroot:C:\Users\user1\Documents\Embarcadero\Studio\SDKs\linuxmint19.3.sdk --libpath:C:\Users\user1\Documents\Embarcadero\Studio\SDKs\linuxmint19.3.sdk\usr\lib\gcc\x86_64-linux-gnu\7;C:\Users\user1\Documents\Embarcadero\Studio\SDKs\linuxmint19.3.sdk\usr\lib\x86_64-linux-gnu;C:\Users\user1\Documents\Embarcadero\Studio\SDKs\linuxmint19.3.sdk\lib\x86_64-linux-gnu;C:\Users\user1\Documents\Embarcadero\Studio\SDKs\linuxmint19.3.sdk\lib64 -V -VN -NHC:\Users\Public\Documents\Embarcadero\Studio\20.0\hpp\Linux64 -NO.\Linux64\Debug LinuxTest.dpr Но я собираю в Win10 а у тебя какая ОС? Или запускай ProcMon и смотри куда лезет компилятор а может ты сам запускаешь компилятор из командной строки и не задал текущий каталог для файла проекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 07:20 |
|
||
|
Linux64 - глюки при линковке
|
|||
|---|---|---|---|
|
#18+
Нет, это из среды. Из командной строки - были те же проблемы, но там легко все ненужные каталоги убрать. Батником у меня все компилируется. ОС - 10-ка. Да, странно конечно. Возможно, у меня Delphi какая-то левая... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 10:10 |
|
||
|
Linux64 - глюки при линковке
|
|||
|---|---|---|---|
|
#18+
Cobalt747 Maxim Rusov, запускай ProcMon и смотри куда лезет компилятор ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 17:29 |
|
||
|
Linux64 - глюки при линковке
|
|||
|---|---|---|---|
|
#18+
Maxim Rusov, Да, есть какая-то бага в компиляторе и линковщике. Со стороны компилятора, проблема заключается в обрезании (умышленно или это такая бага - не известно) "слишком длинной" (чуть более 1024 символа), с точки зрения компилятора, командной строки, которой он будет запускать линковщик. В итоге, при запуске линковшик получает обрезанную командую строку, и падает или нет в зависмости на каком месте она обрублена (путь может оказаться обрезанным в самом интересном месте и вести линковщик к несуществующему каталогу). Со стороны линковщика, также есть какая-то проблема или лимит, в результате чего он "видит" командную строку только до какого-то размера. Причем, командная строка там и не может быть короткой, т.к. через нее передаются не только все возможные пути, но и все имена экспортируемых функций собираемого модуля. Мы для обхода этих проблем сделали себе консольное приложение - врапер линковщика, который запускаем вместо родного ld-linux.exe, путем указания ключа командной строки --linker в консольном компиляторе dcclinux64.exe. Этот врапер линковщика занимается тем, что: 1) проверяет не обрезана ли уже командная строка которую передал компилятор - обычно командная строка запуска линкера заканчивается "$ORIGIN", следовательно если ее там нет, то строка уже обрезана и делать что-то уже поздно 2) как может укорачивает командную строку, путем замены абсолютных путей к каталогам на относительные 3) запускает родной ld-linux.exe с укороченой командной строкой До изготовления воспроизводимого примера для создания тикета в трекере Embarcodero, руки пока не дошли. Если у вас получится сделать воспроизводимый пример - пишите номер, я добавлю свои пять копеек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2020, 20:09 |
|
||
|
Linux64 - глюки при линковке
|
|||
|---|---|---|---|
|
#18+
Maxim RusovЖдать 10.4? Эта бага есть с самой первой версии компилятора под linux, и на сколько я вижу из трекера, они о ней ничего не знают. Поэтому простое ожидание 10.4 мало, что изменит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2020, 20:12 |
|
||
|
Linux64 - глюки при линковке
|
|||
|---|---|---|---|
|
#18+
rashid.abzalov, Спасибо за информацию, по крайней мере я теперь буду знать, что это не у меня руки не из того места растут. Сделать воспроизводимый пример проблематично, т.к. все это зависит от имен каталогов куда установлена Delphi и все остальное... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2020, 20:28 |
|
||
|
Linux64 - глюки при линковке
|
|||
|---|---|---|---|
|
#18+
Maxim Rusov rashid.abzalov, Спасибо за информацию, по крайней мере я теперь буду знать, что это не у меня руки не из того места растут. Сделать воспроизводимый пример проблематично, т.к. все это зависит от имен каталогов куда установлена Delphi и все остальное... Так ты им скинь саму проблемную строку компиляции, а они уже будут разбираться дальше сами. Главное чтобы воспроизводилось каждый раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2020, 08:37 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39953777&tid=2038361]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
184ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 220ms |
| total: | 470ms |

| 0 / 0 |
