Компоновщик не может найти функцию сборки, связанную с программой на C ++ - PullRequest
0 голосов
/ 01 мая 2020

Я написал функцию ассемблера и 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

Я не знаю, как это решить.

...