将 C 项目转换为库以在 QT 中使用
Convert a C project to Library to use in QT
我有一个生成可执行文件的 C 项目。我想将该项目转换为我想在我的 QT C++ 应用程序中使用的库。
我碰壁了。有人可以向我提供任何相关信息吗?
我创建了一个 no-qt 项目进行编译,它生成了一个 .a
文件。
这是我的 .pro 文件
TEMPLATE = lib
CONFIG += staticlib
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
libmnl/dhcp/dhcpclient.c \
libmnl/dhcp/dhcpmsg.c \
libmnl/dhcp/packet.c \
libmnl/attr.c \
libmnl/callback.c \
libmnl/ifutils.c \
libmnl/nlmsg.c \
libmnl/socket.c \
atc.c \
atchannel.c \
at_tok.c \
device.c \
GobiNetCM.c \
mbim-cm.c \
MPQMUX.c \
qmap_bridge_mode.c \
QMIThread.c \
QmiWwanCM.c \
udhcpc_netlink.c \
util.c
HEADERS += \
libmnl/dhcp/dhcp.h \
libmnl/dhcp/dhcpmsg.h \
libmnl/dhcp/packet.h \
libmnl/ifutils.h \
libmnl/libmnl.h \
atchannel.h \
at_tok.h \
MPQMUX.h \
QMIThread.h \
util.h
DISTFILES +=
QMAKE_CFLAGS += -Wall #-s
QMAKE_LFLAGS += -lpthread -ldl -lrt
LIBS += -pthread
我的理解告诉我,我的 C 项目吐出一个可执行文件,而不是我希望它吐出一个库和一个头文件
然后我可以将它添加到我的 QT 项目中
这有帮助吗:
https://wiki.qt.io/How_to_create_a_library_with_Qt_and_use_it_in_an_application
请注意,我在 Qt 项目中包含了 C++ 库,根本不需要做任何特殊的事情。我只是生成 libFOO.a,然后编辑我的 Qt 项目 .pro 文件以添加 -L 和 -lFOO。这是一个这样的项目的剪切和粘贴。
LIBS += -L../MyLib/lib -lMyLib
您可能还需要添加如下内容:
INCLUDEPATH += ../MyLib/src
注意这里没有 -I。
我有一个生成可执行文件的 C 项目。我想将该项目转换为我想在我的 QT C++ 应用程序中使用的库。
我碰壁了。有人可以向我提供任何相关信息吗?
我创建了一个 no-qt 项目进行编译,它生成了一个 .a
文件。
这是我的 .pro 文件
TEMPLATE = lib
CONFIG += staticlib
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
libmnl/dhcp/dhcpclient.c \
libmnl/dhcp/dhcpmsg.c \
libmnl/dhcp/packet.c \
libmnl/attr.c \
libmnl/callback.c \
libmnl/ifutils.c \
libmnl/nlmsg.c \
libmnl/socket.c \
atc.c \
atchannel.c \
at_tok.c \
device.c \
GobiNetCM.c \
mbim-cm.c \
MPQMUX.c \
qmap_bridge_mode.c \
QMIThread.c \
QmiWwanCM.c \
udhcpc_netlink.c \
util.c
HEADERS += \
libmnl/dhcp/dhcp.h \
libmnl/dhcp/dhcpmsg.h \
libmnl/dhcp/packet.h \
libmnl/ifutils.h \
libmnl/libmnl.h \
atchannel.h \
at_tok.h \
MPQMUX.h \
QMIThread.h \
util.h
DISTFILES +=
QMAKE_CFLAGS += -Wall #-s
QMAKE_LFLAGS += -lpthread -ldl -lrt
LIBS += -pthread
我的理解告诉我,我的 C 项目吐出一个可执行文件,而不是我希望它吐出一个库和一个头文件
然后我可以将它添加到我的 QT 项目中
这有帮助吗:
https://wiki.qt.io/How_to_create_a_library_with_Qt_and_use_it_in_an_application
请注意,我在 Qt 项目中包含了 C++ 库,根本不需要做任何特殊的事情。我只是生成 libFOO.a,然后编辑我的 Qt 项目 .pro 文件以添加 -L 和 -lFOO。这是一个这样的项目的剪切和粘贴。
LIBS += -L../MyLib/lib -lMyLib
您可能还需要添加如下内容:
INCLUDEPATH += ../MyLib/src
注意这里没有 -I。