【发布时间】:2020-09-20 06:04:26
【问题描述】:
我知道这是一个常见问题,但我已经为此浪费了两天时间。
我在 Visual Studio 2019 中有一个 非常 基本 cmake 项目,最终需要为 Linux 和 Windows 编译,但现在我无法超越简单的编译器错误.
我的项目目录(由visual studio提供)如下
Solution
|-Project
| |-Includes
| | |-defines.h
| | |-lib.h
| | |-lib.c
| |-main.c
| |-CMakeLists.txt
|-CMakeLists.txt
|-CMakeSettings.json
出现的问题是,所有文件中的所有函数都使用智能感知自动完成,所以事情进展顺利。但是,当我尝试构建(针对任何目标)时,我会得到 undefined reference to {name},因为每次引用 lib.h 和 lib.c 文件中的任何内容。
CMakeLists.txt 如下
# CMakeList.txt : CMake project for LabJackStreamPortable, include source and define
# project specific logic here.
#
cmake_minimum_required (VERSION 3.8)
# Add source to this project's executable.
include_directories(Includes)
add_executable (Project "main.c")
# TODO: Add tests and install targets if needed.
我没有更改包含目录或使用target_include_directories 更改任何内容。我已经为所有具有基本包含(stdlib、stdio 等)的目标构建了项目,并构建了从defines.h 引用基本#define 常量。但是 lib.c 文件中的任何函数都会出错。
【问题讨论】:
-
不要描述代码和错误信息。相反,显示它们(添加到问题帖子中)。最好是minimal reproducible example的形式,这样你的问题可以被别人转载。不能被转载的问题很少能解决。
标签: c visual-studio cmake