Сначала я скомпилирую все ваши файлы .c, используя команду "gcc -c", в объектные файлы, а затем свяжу полученные результирующие файлы .o (например, "array1c.o" и "quicksort.o") вместе с вашимидругие ранее существующие объектные файлы и посмотрите, дает ли это вам неопределенную ссылку.Это может быть ненужным шагом, но я никогда не объединял необработанные файлы .c и .o в одном вызове gcc.
Возможно, вам также придется добавить подчеркивание в начале любой c-функцииназывается ... Я знаю, что это зависит от платформы (то есть Linux обычно не требует подчеркивания на c-функциях, тогда как OSX и некоторые другие платформы UNIX делают это).
Наконец, вы можете попробовать, используя ldпросто связать все объектные файлы одновременно, а не связать некоторые объектные файлы вместе в Project4.o, а затем связать это с тем, что вы собрали, используя nasm (по крайней мере, это то, что я предполагаю, что вы делаете,т. е. вы создаете Project4.o, а затем вызываете функции из этого кода ассемблера).
Надеюсь, это поможет,
Джейсон