Если это единственные рабочие листы в вашей рабочей тетради, добавьте Dim w as Worksheet
вверху вашего подпункта и измените
If Worksheets("Datasheet").Cells(x, Z) = "" Or Worksheets("Datasheet").Cells(x, Z) = "Empty" Then
FinalCell = x & ":" & x
Rows(FinalCell).Hidden = True 'Deletes the row
End If
на
If Worksheets("Datasheet").Cells(x, Z) = "" Or Worksheets("Datasheet").Cells(x, Z) = "Empty" Then
FinalCell = x & ":" & x
For Each w In ThisWorkbook.Worksheets
w.Rows(FinalCell).Hidden = True
Next w
End If
, если они не являются только рабочие листы в вашей рабочей тетради
If Worksheets("Datasheet").Cells(x, Z) = "" Or Worksheets("Datasheet").Cells(x, Z) = "Empty" Then
FinalCell = x & ":" & x
Worksheets("DataSheet").Rows(FinalCell).Hidden = True
Worksheets("YourSheet1").Rows(FinalCell).Hidden = True
Worksheets("YourSheet2").Rows(FinalCell).Hidden = True
Worksheets("YourSheet3").Rows(FinalCell).Hidden = True
End If
Общий список:
strip
на исполняемом файле-M
при использовании ld), или можно использовать objdump на заключительном исполняемом файле (обратите внимание, что это будет только работать над неразделенным исполняемым файлом!) Это на самом деле не решит проблему, но она сообщит худших преступников.nm
исследовать символы, которые называют от каждого из Ваших объектных файлов. Это должно помочь в нахождении, кто вызывает функции, которые Вы не хотите названный.В исходном вопросе был дополнительный вопрос о включении только соответствующих функций. gcc
будет включать все функции в каждом объектном файле, который используется. Для помещения этого иначе, если у Вас есть объектный файл, который содержит 10 функций, все 10 функций включены в Ваш исполняемый файл, даже если один 1 на самом деле называют.
Стандартные библиотеки (например, libc) разделят функции на многие файлы отдельного объекта, которые затем заархивированы. Исполняемый файл затем связан против архива. Путем разделения на многие объектные файлы компоновщик может включать только функции, которые на самом деле вызваны. (это предполагает, что Вы статически связываетесь),
Нет никакой причины, почему Вы не можете сделать того же приема. Конечно, Вы могли утверждать, что, если функции не вызваны, Вы могут, вероятно, удалить их сами.
Если Вы статически связываетесь против других библиотек, можно выполнить инструменты, упомянутые выше по ним также, чтобы удостовериться, что они следуют подобным правилам.
Другая оптимизация, которая могла бы сохранить Вас работа, - ffunction-разделы,-Wl, - разделы gc, предполагая использование GCC. Хорошему набору инструментальных средств не должны будут говорить это, все же.
Объяснение: GNU ld разделы ссылок и GCC испускает один раздел на единицу перевода, если Вы не говорите это иначе. Но в C++, узлы в dependecy графике являются объектами и функциями.
Только, чтобы перепроверить и зарегистрировать для дальнейшего использования, но Вы используете инструкции по Ползунку? Они - версии на 16 битов нормальных инструкций. Иногда Вам, возможно, понадобились бы 2 инструкции на 16 битов, таким образом, это не сохранит 50% в пространстве кода.
Достойный компоновщик должен взять просто необходимые функции. Однако Вам, возможно, понадобились бы компилятор и linke настройки для упаковки функций для отдельного соединения.
На очень встроенных проектах я всегда стараюсь не использовать любые стандартные библиотечные функции. Даже простые функции как "стертол ()" аварийно завершают двоичный размер. Если возможно просто избегают тех вызовов.
В наиболее очень встроенных проектах Вам не нужно универсальное "printf ()", или динамическое выделение памяти (много контроллеров имеют 32 КБ или меньше RAM).
Вместо того, чтобы просто использовать "printf ()" я использую очень простое пользовательское "printf ()", эта функция может только распечатать числа в шестнадцатеричном или десятичном формате не больше. Большинство структур данных предварительно выделяется во время компиляции.
Хорошо так в конце я просто уменьшил проект до, он - самая простая форма, затем медленно добавляемые файлы один за другим до, функция, которую я хотел удалить, появилась в 'readelf' файле. Затем, когда у меня был файл, я прокомментировал все, и медленно включайте вещи назад, пока функция не открылась снова. Таким образом в конце я узнал то, что назвало его и удалило все те вызовы... Теперь это работает, как желаемый... сладкое!
Должен быть лучший способ сделать это все же.
Вы могли посмотреть на что-то как исполняемое сжатие.