Аналогично. Только в моем случае, отдельных obj или lib не будет. У меня все - это исходники и собирается проект сразу и весь. Без промежуточных модулей. Но здесь как кому удобно и кто к чему привык. Аллилуйя! Хоть в чем-то есть совпадениеНа кой хер мне собирать локер под каждую архитектуру, я соберу отдельно варианты функций в отдельный obj или lib файл, каждая из них будет с поддержкой SSE\AVX и тд и тп либо без поддержки всего этого сарафана, там всего наберется комбинаций 5-6
затем я линкую все эти варианты одной и той же функции в один проект
в коде описываю прототип функции, создаю указатель на функцию, делаю проверку, какой набор инструкций поддерживается, устанавливаю указатель на нужный мне вариант функции, в которой есть все доступные оптимизации и вызываю далее именно этот вариант функции по указателю
profit
вот тебе и кросс-поддержка разных наоборов в одном флаконе, и адаптивно выбирается наиболее подходящий вариант, для процессора на котором запущен софт