Это зависит от того, что в этой библиотеке. Тот факт, что это проект статической библиотеки Visual C ++ Win32, говорит нам о том, как ваша библиотека компилируется. Он ничего не говорит нам о том, какой код входит в эту библиотеку. Это может быть совершенно переносимый стандартный код C ++. Это также может быть код, в котором каждая вторая строка представляет собой вызов функции Windows API, который, очевидно, не будет переносимым.
Будет ли код библиотеки переносимым, все зависит от кода. Замена short
на int16_t
или int_fast16_t
ничего не сделает для увеличения переносимости кода (если только при первоначальном использовании short
не предполагалось использование некоторых свойств, определяемых реализацией). Так что я не уверен, чего должна достичь полная замена short
на int16_t
. short
- это фундаментальный тип, встроенный в язык. int16_t
- это тип, определенный стандартной библиотекой , если целевая платформа поддерживает его. Таким образом, в некотором смысле, int16_t
на самом деле менее переносим, чем short
. В то время как int_fast16_t
всегда определяется, также short
. Используйте целочисленные типы фиксированной ширины стандартной библиотеки, если вам нужна семантика, которую они предоставляют. Если нет, то нет причин использовать их. Обратите внимание: чтобы использовать целочисленные типы фиксированной ширины в C ++, включите заголовок C ++ <cstdint>
вместо <stdint.h>
, который не гарантированно присутствует в C ++. Также обратите внимание, что <cstdint>
гарантированно помещает объявления только в пространство имен std
. Поэтому для максимальной переносимости используйте std::int16_t
, поскольку не гарантируется, что ::int16_t
доступен.
Если код библиотеки переносимый, то все, что вам нужно для сборки этой библиотеки на другой платформе, - это система сборки для этой платформы. Так что да, это правильно, что если код переносим, все, что вам нужно сделать, это скомпилировать этот код на другой платформе, используя любые инструменты, которые вы используете на этой другой платформе ... это своего рода определение того, что означает, что код должен быть переносной…; -)