C++ C++;CMake未正确引用带有.h的函数

C++ C++;CMake未正确引用带有.h的函数,c++,compiler-errors,cmake,reference,header,C++,Compiler Errors,Cmake,Reference,Header,解决方案: 只是不要成为一个noob,在与cmake相同的目录下运行make 谢谢你的回答 我从C++编程开始,我想了解如何正确地用.h和.cp文件引用函数。我有以下文件: \\func.h #ifndef FUNC_H #define FUNC_H int charout(int a, char b); #endif 当我尝试生成main.cpp时,我收到一个错误: 使main g++main.cpp-o main/tmp/cctlsXUG.o:

解决方案: 只是不要成为一个noob,在与
cmake
相同的目录下运行
make
谢谢你的回答

<>我从C++编程开始,我想了解如何正确地用.h和.cp文件引用函数。我有以下文件:

    \\func.h
    #ifndef FUNC_H
    #define FUNC_H

    int charout(int a, char b);

    #endif

当我尝试生成main.cpp时,我收到一个错误:

使main g++main.cpp-o main/tmp/cctlsXUG.o:处于函数中
main”:main.cpp:(.text+0x80):对
charout(int, char)'collect2:错误:ld返回1退出状态:recipe 对于目标“main”,生成失败:**[main]错误1

你能看一看,让我知道我在哪里犯了错误吗? 我将感谢您的反馈。我真的被这件事缠住了。干杯


更新: 好的,我设法用
g++func.cpp main.cpp-o main编译了它,当我试图用gcc编译相同的代码时,我得到了排序
未定义的引用的错误
std::cout'
我发现GCC没有提供对C++的STD的访问。我可以用某种方式修复我的CMake文件,以使用g++而不是gcc吗?我必须交付的项目应该包含一个CMakeLists.txt。
最后一个问题:为什么CMake可以在同一个文件中使用函数声明和main,但在我将函数拆分为header、cpp和main时却不行?

看起来像是
func.cpp
没有被编译。也许您需要在build文件夹中执行
cmake.
,以重新生成生成文件。我每天使用
CMake
,但不使用Makefiles,所以我不确定这是否是自动的。我也尝试过,甚至尝试单独编译func.cpp,但随后我得到了对“main”错误的未定义引用:>g++func.cpp-o func/usr/lib/gcc/x86_64-linux-gnu/5/../../x86_64-linux-gnu/crt1.o:In function
\u start':(.text+0x20):未定义对
main'collect2的引用:错误:ld返回1退出状态:目标'func'的配方生成失败:**[func]错误1
当我尝试生成main.cpp时,我收到一个错误:
-为生成项目运行的确切命令(在
cmake
之后)?
make
make main
make main.cpp
?最后一次调用有点意义,因为您的项目已经有
main.cpp
文件,不应该重建它。我首先在build文件夹中执行
cmake..
,然后返回带有.cpp文件的文件夹和
make main
。您应该运行ode>make
与之前运行cmake的目录相同。
    \\func.cpp
    #include <iostream>
    #include "func.h"
    using namespace std;

    int charout(int a, char b)
    {
        cout << a;
        cout << b;
    return 0;
    }
\\main.cpp
#include <iostream>
#include "func.h"
using namespace std;

int main ()
{
    int a; char b;

    cout << "insert an integer " << endl;
    cin >> a;
    cout << "insert a letter " << endl;
    cin >> b;
    charout(a,b);
return 0;
}
# Declare the version of the CMake API for forward-compatibility
cmake_minimum_required(VERSION 2.8)
# Declare the name of the CMake Project
project(manual)
# Add the directory to search for header files
include_directories(include)
# Define an executable target
add_executable(main func.cpp main.cpp)