0

私は C99 C で書かれた単純な modbus マスター プロジェクトを持っています。

$ gcc -std=c99 -O2 -Wall -I/usr/include/modbus test.c -o test -L/usr/lib/modbus -L/usr/include/curl -lmodbus -lm -lcurl

古典的な Makefile を書きたいと思います。私はこれを試します:

CFLAGS=-std=c99 -O2 -Wall -I/usr/include/modbus 
LDFLAGS=-L/usr/lib/modbus -L/usr/include/curl -lmodbus -lm -lcurl

test: test.o
    $(CC) $(LDFLAGS) test.o -o test
test.o: test.c
    $(CC) $(CFLAGS) -c test.c

clean:
    rm *.o test

しかし、実行するmakeとクラッシュします:

cc -L/usr/lib/modbus -L/usr/include/curl -lmodbus -lm -lcurl test.o -o test
test.o: In function `myFunction':
test.c:(.text+0x80): undefined reference to `log'

どこにエラーがありますか? CFLAGSとの違いは何LDFLAGSですか? CFLAGSはコンパイラLDFLAGS用で、リンカ用ですか? gcc最初のコマンドから、コンパイラの param とリンカの param を判別するにはどうすればよいですか?

4

0 に答える 0