我决定使用 KDevelop 为 C 程序(两种语言我都不知道)制作 C++-Qt-GUI,而后者又使用 CMake。
C 源代码没有标题,所以我做了一个,并将一些结构迁移到其中,以及我需要调用的 C 源代码中唯一函数的声明。
问题是我不能调用它,因为要么 CMake 找不到 C 文件(因此找不到定义),或者当我将 C 源添加到 CMakeLists.txt 中的源集时,它抱怨两者我的 main.cpp 和 C 源文件具有主要功能。
我如何告诉 CMake 它应该只使我在标题中声明的 C 文件中的函数可用?
就这个:
project(oregengui)
cmake_minimum_required(VERSION 2.6)
find_package(Qt4 REQUIRED)
include_directories(${QT_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR})
set(oregengui_SRCS oregengui.cpp main.cpp qrangeslider/qrangeslider.cpp)
#as soon as i add oregengui/oregengui.c, it won’t work because of the main function
qt4_automoc(${oregengui_SRCS})
add_executable(oregengui ${oregengui_SRCS})
target_link_libraries(oregengui ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY})
PS:我不想过多更改C源代码,因为它是一个独立的项目。我猜开发人员会接受引入标头,但不会更多。