eclipse cdt 编译动态库,供msvc调用 -- 3.手写Makefile.cross

这是一个关于如何使用Makefile编译和链接C/C++源代码来创建动态库libusp_BPM22.dll和静态库libusp_BPM22.a的教程。该过程涉及到了libusb-1.0和FreeImage库的链接,并且包含了编译选项、目录路径设置以及生成目标文件的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

##
## libusp_bpm22.c
##
##  Created by JK
##

# General configuration variables:
CC         = gcc
CXX     = g++
AR         = ar
RM         = rm -rf
DEBUG     =
CFLAGS     = $(DEBUG) -O3 -Wall -c -fmessage-length=0 -MMD -MP
TIME     = $(shell date +%Y%m%d)

OBJ     = usbBasic.o cdebug.o libusp_BPM22.o

LIBS     = -lusb-1.0 -lFreeImage

TOP_PATH = $(shell pwd)/..
LIB_PATH = -L$(TOP_PATH)/libs \
    -L$(TOP_PATH)/libs/libusb-1.0.22 \
    -L$(TOP_PATH)/libs/freeimage3180 \
    -L$(TOP_PATH)/libs/plus
INC_PATH = -I$(TOP_PATH)/usbBasic \
    -I$(TOP_PATH)/cDebug-log \
    -I$(TOP_PATH)/libs

# All Target
all: libusp_BPM22.dll

usbBasic.o: $(TOP_PATH)/usbBasic/g_header.h $(TOP_PATH)/usbBasic/usbbasic.h
    $(CXX) $(CFLAGS) $(INC_PATH) $(LIBS) $(TOP_PATH)/usbBasic/usbbasic.cpp

cdebug.o: $(TOP_PATH)/cDebug-log/cdebug.h
    $(CXX) $(CFLAGS) $(INC_PATH) $(LIBS) $(TOP_PATH)/cDebug-log/cdebug.cpp

libusp_BPM22.o: $(TOP_PATH)/libusp_BPM22/src/libusp_bpm22.h
    $(CC) $(CFLAGS) $(INC_PATH) $(LIBS) $(TOP_PATH)/libusp_BPM22/src/libusp_bpm22.c

libusp_BPM22.dll: $(OBJ)
    @echo ''
    @echo ''
    @echo '-- Invoking: Cross G++ Linker With MinGW-GCC'
    @echo '-- Building target: $@'
    $(CXX) $(LIB_PATH) -shared -o "libusp_BPM22.dll" $(OBJ) $(LIBS)
    @echo '-- Building target: libusp_BPM22.a'
    $(CXX) $(LIB_PATH) -shared -o "libusp_BPM22.a" $(OBJ) $(LIBS)
    @echo '-- Finished building target with makefile.cross'

clean:
    -$(RM) $(OBJ) *.d libusp_BPM22.dll libusp_BPM22.def libusp_BPM22.lib libusp_BPM22.a
    -@echo '-- Finished make clean'

package:
    mkdir -p build$(TIME)
    $(RM) build$(TIME)/*.*
    mkdir -p build$(TIME)/gcc-win32 build$(TIME)/msvc
    @pexports libusp_BPM22.dll > libusp_BPM22.def
    @lib /machine:i386 /def:libusp_BPM22.def /out:libusp_BPM22.lib
    @echo '-- Finished make objects with makefile.cross'
    cp $(TOP_PATH)/usbBasic/g_header.h $(TOP_PATH)/libusp_BPM22/src/libusp_BPM22.h ./build$(TIME)/
    cp -f libusp_BPM22.dll libusp_BPM22.a ./build$(TIME)/gcc-win32
    cp -f libusp_BPM22.dll libusp_BPM22.lib ./build$(TIME)/msvc
    @echo '-- 'build$(TIME) >>./readme.txt

clear:
    -$(RM) $(OBJ) *.d libusp_BPM22.dll libusp_BPM22.def libusp_BPM22.lib libusp_BPM22.a libusp_BPM22.exp
    -@echo '-- Finished make clear'

.PHONY: all clean dependents

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值