CMake不会创建目标文件而无法链接

时间:2014-10-14 01:01:02

标签: c visual-studio-2013 cmake

我试图用CMake替换项目的构建系统但是,我无法使用CMake制作目标文件。

项目树是这样的:

CMakeLists.txt
psg-play.c
psg/
  CMakeLists.txt
  psg.h
  psg-constants.h
  psg.c

生成的Visual Studio 12解决方案无法与错误链接:

LINK : fatal error LNK1181: cannot open input file 'psg\Release\psg.obj'

在psg构建目录(psg \ Release)上有一个名为' psg'的文件。根本没有扩展。

CMakeLists文件如下。 (主要CMakeLists.txt)

# Main
cmake_minimum_required (VERSION 2.8)

#Add all the dependencies
include_directories ("${PROJECT_SOURCE_DIR}/psg")
add_subdirectory (psg)

# --- The project executables ---
project (psgp)
# --- psg-play
add_executable        (psg-play psg-play.c)
target_link_libraries (psg-play psg)

PSG /的CMakeLists.txt

add_library(psg psg.c)

如何正确编译和修改这两个文件?

1 个答案:

答案 0 :(得分:0)

该命令中缺少project命令 PSG /的CMakeLists.txt

project (psg)
add_library(psg psg.c)

add_subdirectory的{​​{3}}也提到了这一点:

  

通常,子目录应包含自己的project()命令调用,以便在子目录中生成完整的构建系统(例如VS IDE解决方案文件)。