Я написал функцию ассемблера и main в C в VS Code и скомпилировал ее стандартной командой
g cc charFull64.s file. c -gstabs -no-p ie -o ex
Программа была связана и работала. Затем я попытался добавить их в проект в CLion . К сожалению, я продолжаю сталкиваться с той же проблемой, что компоновщик не может найти мою функцию сборки. Я попытался добавить некоторые флаги в CMake и найти ответ по inte rnet, но не могу.
Возможно, значительная часть программы функций ( charFull64.s ):
[...]
.text
.global fullChar
.type fullChar , @function
#int fullChar (unsigned char*);
fullChar:
push %rbp
movq %rsp, %rbp
pushq %rbx
pushq %r12
pushq %r13
movq %rdi, number # unsigned char* to number
[...]
И мой главный в файле. c:
#include <stdio.h>
extern int fullChar (unsigned char*);
int main(){
unsigned char a[] = "514";
int size = fullChar(a);
for(int i = 0; i < size; i++)
printf(" %d", a[i]);
printf("\n");
return 0;
}
Clion все еще выбрасывает это:
CMakeFiles/program.dir/main.cpp.o: In function `main':
/home/stanley/CLionProjects/Factorization/main.cpp:17: undefined reference to `fullChar(unsigned char*)'
collect2: error: ld returned 1 exit status
CMakeFiles/program.dir/build.make:90: recipe for target 'program' failed
Я не знаю, как это решить.