私は、Cプログラム(どちらの言語もわかりません)用のC ++-Qt-GUIを、CMakeを使用するKDevelopを使用して作成することにしました。
Cソースにはヘッダーがないので、ヘッダーを作成し、いくつかの構造体をヘッダーに移行しました。また、Cソースで呼び出す必要がある唯一の関数の宣言も行いました。
問題は、CMakeがCファイル(したがって定義)を見つけられないか、CMakeLists.txtのソースセットにCソースを追加すると、両方が文句を言うため、呼び出すことができないことです。私のmain.cppとCソースファイルには主な機能があります。
ヘッダーで宣言したCファイルの関数のみを使用可能にする必要があることをCMakeに伝えるにはどうすればよいですか?
はい、これ:
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ソースをあまり変更したくありません。開発者はヘッダーの導入を受け入れると思いますが、それ以上は受け入れません。