涓浜涢氱敤鐨凪akefile鏂囦欢妯℃澘锛堣浆杞斤級-CODESYS绉绘-閰峰痉缃 - CoDeSys杞欢鏁欑▼涓嬭浇,CoDeSys宸ユ帶璧勮闂ㄦ埛
HSC6490-cn涓浗鍒堕狅紝涓浗鑺瘇
鏌ョ湅: 175|鍥炲: 0

涓浜涢氱敤鐨凪akefile鏂囦欢妯℃澘锛堣浆杞斤級

[澶嶅埗閾炬帴]
  • TA鐨勬瘡鏃ュ績鎯
    寮蹇
    2017-11-20 22:07
  • 绛惧埌澶╂暟: 2 澶

    [LV.1]鍒濇潵涔嶅埌

    鍙戣〃浜 2026-3-18 10:29:46 | 鏄剧ず鍏ㄩ儴妤煎眰 |闃呰妯″紡
    杩欓噷鍐欒嚜瀹氫箟鐩綍鏍囬

      鍐欏湪鍓嶉潰
        3涓狹akeFile妯℃澘2.1 缂栬瘧鍙墽琛屾枃浠禡akefile2.2 缂栬瘧闈欐佸簱Makefile2.2 缂栬瘧闈欐佸簱Makefile


    鍐欏湪鍓嶉潰

    瀵逛簬Windows涓嬪紑鍙戯紝寰堝IDE閮介泦鎴愪簡缂栬瘧鍣紝濡俈isual Studio锛屾彁渚涗簡鈥滀竴閿紪璇戔濓紝缂栫爜瀹屾垚鍚庡彧闇涓涓搷浣滃嵆鍙畬鎴愮紪璇戙侀摼鎺ャ佺敓鎴愮洰鏍囨枃浠躲
    Linux寮鍙戜笌Windows涓嶅悓锛孡inux涓嬩竴鑸敤鐨勭殑gcc/g++缂栬瘧鍣紝濡傛灉鏄紑鍙慉RM涓嬬殑Linux绋嬪簭锛岃繕闇鐢ㄥ埌arm-linux-gcc/arm-linux-g++浜ゅ弶缂栬瘧鍣ㄣ
    Linux涓嬩篃鍙互瀹炵幇鈥滀竴閿紪璇戔濆姛鑳斤紝姝ゆ椂闇瑕佷竴涓紪璇戣剼鏈淢akefile鈥濓紝Makefile鍙互鎵嬪姩缂栧啓锛屼篃鍙互鍊熷姪鑷姩鍖栨瀯寤哄伐鍏凤紙濡俿cons銆丆Make锛夌敓鎴愩傛墜鍔ㄧ紪鍐橫akefile鏄疞inux鍜學indows绋嬪簭鍛樼殑鍖哄埆涔嬩竴锛屼竴鑸湴涓涓氱敤鐨凪akefile鑳藉閫傚悎澶ч儴鍒哃inux椤圭洰绋嬪簭銆
    3涓狹akeFile妯℃澘

    2.1 缂栬瘧鍙墽琛屾枃浠禡akefile
    1. VERSION  =1.00
    2. CC   =gcc
    3. DEBUG   =-DUSE_DEBUG
    4. CFLAGS  =-Wall
    5. SOURCES   =$(wildcard ./source/*.c)
    6. INCLUDES   =-I./include
    7. LIB_NAMES  =-lfun_a -lfun_so
    8. LIB_PATH  =-L./lib
    9. OBJ   =$(patsubst %.c, %.o, $(SOURCES))
    10. TARGET  =app
    11. #links
    12. $(TARGET):$(OBJ)
    13. @mkdir -p output
    14. $(CC) $(OBJ) $(LIB_PATH) $(LIB_NAMES) -o output/$(TARGET)$(VERSION)
    15. @rm -rf $(OBJ)
    16. #compile
    17. %.o: %.c
    18. $(CC) $(INCLUDES) $(DEBUG) -c $(CFLAGS) $< -o $@
    19. .PHONY:clean
    20. clean:
    21. @echo "Remove linked and compiled files......"
    22. rm -rf $(OBJ) $(TARGET) output
    澶嶅埗浠g爜
    銆愯鐐硅鏄庛
    銆1銆戠▼搴忕増鏈
    寮鍙戣皟璇曡繃绋嬪彲鑳戒骇鐢熷涓▼搴忕増鏈紝鍙互鍦ㄧ洰鏍囨枃浠跺悗锛堝墠锛夊鍔犵増鏈彿鏍囪瘑銆
    1. VERSION = 1.00
    2. $(CC) $(OBJ) $(LIB_PATH) $(LIB_NAMES) -o output/$(TARGET)$(VERSION)
    澶嶅埗浠g爜
    銆2銆戠紪璇戝櫒閫夋嫨
    Linux涓嬩负gcc/g++锛沘rm涓嬩负arm-linux-gcc锛涗笉鍚孋PU鍘傚晢鎻愪緵鐨勫畾鍒朵氦鍙夌紪璇戝櫒鍚嶇О鍙兘涓嶅悓锛屽Hisilicon鈥渁rm-hisiv300-linux-gcc鈥濄
    1. CC = gcc
    澶嶅埗浠g爜
    銆3銆戝畯瀹氫箟
    寮鍙戣繃绋嬶紝鐗规畩浠g爜涓鑸鍔犲畯鏉′欢鏉ラ夋嫨鏄惁缂栬瘧锛屽璋冭瘯鎵撳嵃杈撳嚭浠g爜銆-D鏄爣璇嗭紝鍚庨潰鎺ョ潃鐨勬槸鈥滃畯鈥濄
    1. DEBUG =-DUSE_DEBUG
    澶嶅埗浠g爜
    銆4銆戠紪璇戦夐」
    鍙互鎸囧畾缂栬瘧鏉′欢锛屽鏄剧ず璀﹀憡锛-Wall锛夛紝浼樺寲绛夌骇锛-O锛夈
    1. CFLAGS =-Wall -O
    澶嶅埗浠g爜
    銆5銆戞簮鏂囦欢
    鎸囧畾婧愭枃浠剁洰鐨勮矾寰勶紝鍒╃敤鈥渨ildcard鈥濊幏鍙栬矾寰勪笅鎵鏈変緷璧栨簮鏂囦欢銆
    1. INCLUDES =-I./include
    澶嶅埗浠g爜
    銆6銆戝ご鏂囦欢
    鍖呭惈渚濊禆鐨勫ご鏂囦欢锛屽寘鎷簮鐮佹枃浠跺拰搴撴枃浠剁殑澶存枃浠躲
    1. INCLUDES =-I./include
    澶嶅埗浠g爜
    銆7銆戝簱鏂囦欢鍚嶇О
    鎸囧畾搴撴枃浠跺悕绉帮紝搴撴枃浠舵湁鍥哄畾鏍煎紡锛岄潤鎬佸簱涓簂ibxxx.a;鍔ㄦ佸簱涓簂ibxxx.so锛屾寚瀹氬簱鏂囦欢鍚嶇О鍙渶鍐欌渪xx鈥濋儴鍒嗭紝
    1. LIB_NAMES =-lfun_a -lfun_so
    澶嶅埗浠g爜
    銆8銆戝簱鏂囦欢璺緞
    鎸囧畾渚濊禆搴撴枃浠剁殑瀛樻斁璺緞銆傛敞鎰忓鏋滃紩鐢ㄧ殑鏄姩鎬佸簱锛屽姩鎬佸簱涔熻鎷疯礉鍒扳/lib鈥濇垨鑰呪/usr/lib鈥濈洰褰曚笅锛屾墽琛屽簲鐢ㄧ▼搴忔椂锛岀郴缁熼粯璁ゅ湪璇ユ枃浠朵笅绱㈠紩鍔ㄦ佸簱銆
    1. LIB_PATH =-L./lib
    澶嶅埗浠g爜
    銆9銆戠洰鏍囨枃浠
    璋冪敤鈥減atsubst鈥濆皢婧愭枃浠讹紙.c锛夌紪璇戜负鐩爣鏂囦欢锛.o锛夈
    1. OBJ =$(patsubst %.c, %.o, $(SOURCES))
    澶嶅埗浠g爜
    銆10銆戞墽琛屾枃浠
    鎵ц鏂囦欢鍚嶇О
    1. TARGET =app
    澶嶅埗浠g爜
    銆11銆戠紪璇
    1. %.o: %.c
    2. $(CC) $(INCLUDES) $(DEBUG) $(CFLAGS) $< -o $@
    澶嶅埗浠g爜
    銆12銆戦摼鎺
    鍙垱寤轰竴涓渙utput鈥濇枃浠跺す瀛樻斁鐩爣鎵ц鏂囦欢銆傞摼鎺ュ畬杈撳嚭鐩爣鎵ц鏂囦欢锛屽彲浠ュ垹闄ょ紪璇戜骇鐢熺殑涓存椂鏂囦欢锛.o锛夈
    1. $(TARGET):$(OBJ)
    2. @mkdir -p output
    3. $(CC) $(OBJ) $(LIB_PATH) $(LIB_NAMES) -o output/$(TARGET).$(VERSION)
    4. @rm -rf $(OBJ)
    澶嶅埗浠g爜
    銆13銆戞竻闄ょ紪璇戜俊鎭
    鎵ц鈥渕ake clean鈥濇竻闄ょ紪璇戜骇鐢熺殑涓存椂鏂囦欢銆
    1. .PHONY:clean
    2. clean:
    3. @echo "Remove linked and compiled files......"
    4. rm -rf $(OBJ) $(TARGET) output
    澶嶅埗浠g爜
    2.2 缂栬瘧闈欐佸簱Makefile
    1. VERSION     =
    2. CC          =gcc
    3. DEBUG   =
    4. CFLAGS  =-Wall
    5. AR   =ar
    6. ARFLAGS     =rv
    7. SOURCES   =$(wildcard *.c)
    8. INCLUDES    =-I.
    9. LIB_NAMES   =
    10. LIB_PATH  =
    11. OBJ         =$(patsubst %.c, %.o, $(SOURCES))
    12. TARGET      =libfun_a
    13. #link
    14. $(TARGET):$(OBJ)
    15. @mkdir -p output
    16. $(AR) $(ARFLAGS) output/$(TARGET)$(VERSION).a $(OBJ)
    17. @rm -rf $(OBJ)
    18. #compile
    19. %.o: %.c
    20. $(CC) $(INCLUDES) $(DEBUG) -c $(CFLAGS) $< -o $@
    21.   
    22. .PHONY:clean
    23. clean:
    24. @echo "Remove linked and compiled files......"
    25. rm -rf $(OBJ) $(TARGET) output
    澶嶅埗浠g爜
    銆愯鐐硅鏄庛
    鍩烘湰鏍煎紡涓庘滅紪璇戝彲鎵цMakefile鈥濅竴鑷达紝涓嶅悓鐐瑰寘鎷互涓嬨
    銆1銆戜娇鐢ㄥ埌鈥渁r鈥濆懡浠ゅ皢鐩爣鏂囦欢锛.o锛夐摼鎺ユ垚闈欐佸簱鏂囦欢锛.a锛夈傞潤鎬佸簱鏂囦欢鍥哄畾鍛藉悕鏍煎紡涓猴細libxxx.a銆
    2.2 缂栬瘧闈欐佸簱Makefile
    1. VERSION   =
    2. CC        =gcc
    3. DEBUG     =
    4. CFLAGS    =-fPIC -shared
    5. LFLAGS   =-fPIC -shared
    6. SOURCES   =$(wildcard *.c)
    7. INCLUDES  =-I.
    8. LIB_NAMES =
    9. LIB_PATH  =
    10. OBJ       =$(patsubst %.c, %.o, $(SOURCES))
    11. TARGET    =libfun_so
    12. #link
    13. $(TARGET):$(OBJ)
    14. @mkdir -p output
    15. $(CC) $(OBJ) $(LIB_PATH) $(LIB_NAMES) $(LFLAGS) -o output/$(TARGET)$(VERSION).so
    16. @rm -rf $(OBJ)
    17. #compile
    18. %.o: %.c
    19. $(CC) $(INCLUDES) $(DEBUG) -c $(CFLAGS) $< -o $@
    20. .PHONY:clean
    21. clean:
    22. @echo "Remove linked and compiled files......"
    23. rm -rf $(OBJ) $(TARGET) output
    澶嶅埗浠g爜
    銆愯鐐硅鏄庛
    鍩烘湰鏍煎紡涓庘滅紪璇戝彲鎵цMakefile鈥濅竴鑷达紝涓嶅悓鐐瑰寘鎷互涓嬨
    銆1銆戠紪璇戦夐」鍜岄摼鎺ラ夐」澧炲姞鈥-fPIC -shared 鈥濋夐」銆傚姩鎬佸簱鏂囦欢鍥哄畾鍛藉悕鏍煎紡涓簂ibxxx.so銆
    +10
    涓嶈禐涓涓紵
    鎵撹祻榧撳姳涓涓嬶紒
    鍥炲

    浣跨敤閬撳叿 涓炬姤

    鎮ㄩ渶瑕佺櫥褰曞悗鎵嶅彲浠ュ洖甯 鐧诲綍 | 绔嬪嵆娉ㄥ唽 鏂版氮寰崥鐧婚檰

    鏈増绉垎瑙勫垯

    椤堕儴qrcode搴曢儴
    鍏虫敞閰峰痉缃戣闃呭彿锛岃幏鍙栨洿澶氳祫璁紒

    QQ|Archiver|鎵嬫満鐗|灏忛粦灞|閰峰痉璁哄潧 ( 鑻廔CP澶16065247鍙-1 )|缃戠珯鍦板浘

    GMT+8, 2026-6-30 09:28 , Processed in 0.207922 second(s), 53 queries .

    閰峰痉缃

    © 2001-2013 Hicodesys. 鎶鏈敮鎸 by 閰峰痉缃

    蹇熷洖澶 杩斿洖椤堕儴 杩斿洖鍒楄〃