1

Cで共有オブジェクトをリンクする方法のチュートリアルを勉強しています

これが私のメイクファイルです

test: glenn.c libhala.so
    gcc glenn.c -L. -o test

libhala.so: hala.o
    gcc -shared hala.o -o libhala.so

hala.o: hala.c hala.h
    gcc -c -Wall -Werror -fpic hala.c

clean:
    rm *.o
    rm *.so
    rm test

hala.h

#ifndef HALA
#define HALA

extern void test(char*);
#endif

hala.c

#include "hala.h"
#include <stdio.h>

extern void test(char* s)
{

    printf("%s", s);
}

glenn.c

#include <stdio.h>
#include "hala.h"

int main()
{
    test("Hello There!");
    return 0;
}

これは私を買いだめします。お願い助けて..

4

2 に答える 2

2

-lhahaリンクするときに追加する必要がありますglenn.c

gcc glenn.c -L. -lhala -o test
于 2012-11-26T04:46:20.217 に答える
1

-lhalaコンパイル中に追加glenn.cするので、makefileを次のように更新します

test: glenn.c libhala.so
    gcc glenn.c -L. -lhala -o test
于 2012-11-26T04:46:39.137 に答える