Создав свое приложение, первоначально используя debug
, я теперь перехожу к его подготовке к работе. Я изменил параметры компиляции с
-c -W"c,debug,LP64,sscomm,dll"
на
-c -s -W"c,LP64,sscomm,dll"
, что уменьшает размер результирующего исполняемого файла до 60% от отладочной версии.
Я изменил мои параметры ссылки от
-W"l,LP64,DYNAM=DLL"
до
-s -W"l,LP64,DYNAM=DLL"
, что дополнительно уменьшает размер результирующего исполняемого файла до 20% от исходной отладочной версии.
Так что это, безусловно, кажется, делает что-то . Но когда я просматриваю исполняемый файл, я все еще могу видеть все привлекающие внимание имена функций в исполняемом файле, и когда я принудительно завершаю работу, сгенерированный CEEDUMP
по-прежнему показывает все имена функций в этом файле. Я ожидал, что -s
удалит всю информацию о символах c.
Итак, мой вопрос: «Как мне удалить всю информацию о символах c?»
Кроме того, после того, как я связан с -s
Я больше не могу копировать модуль в набор данных MVS из файла USS, в котором он был создан. Я использую следующую команду: -
cp -X prog "//'ME.USER.LOAD(PROG)'"
, которая не работает с: -
IEW2523E 3702 MEMBER *NULL* IDENTIFIED BY DDNAME /0000002 IS NOT AN EDITABLE
MODULE AND CANNOT BE INCLUDED.
IEW2510W 3704 ENTRY OFFSET 0 IN MODULE *NULL* IDENTIFIED BY DDNAME /0000002
DOES NOT EXIST IN A VALID SECTION.
cp: FSUMF140 IEWBIND function "INCLUDE" failed with return code 8 and reason code 83000505
Кажется, в этом сообщении об ошибке говорится, что мне нужна опция связи EDIT
, но если я добавлю это, похоже, сводит на нет шаг использования -s
в ссылке, поскольку размер возвращается до 60% от размера отладочной версии.
Итак, мой второй вопрос: «как мне скопировать файл в набор данных MVS, а также удалить символьную c информацию? "
Может быть, есть следующий шаг, который я могу предпринять, чтобы снова запустить связыватель, чтобы удалить символьную c информацию из файла USS и из набор данных MVS после копии?