在CION中链接到C ++的C代码不起作用

时间:2017-02-16 18:52:13

标签: c++ c clion

我知道有大量的帖子,但经历了很多帖子,我发现没有任何效果。

我想在我的C ++文件中包含一些.h和.c文件。

单击CLion中的方法,它会将我重定向到该foo.h文件,但最终它无法使用以下消息:

架构x86_64的未定义符号:   “_fooFct”,引自:       main.cpp.o中的_main ld:找不到架构x86_64的符号

foo.h中

 void fooFct();

foo.c的

void fooFct(){
    /* do some stuff here */
 }

的main.cpp

#include <iostream>

extern "C"
{
    #include "clibraryFolder/header/foo.h"
}

int main() {
    fooFct();
    return 0;
}

的CMakeLists.txt

 cmake_minimum_required(VERSION 3.6)
 project(newcsample)

 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

 set(SOURCE_FILES main.cpp)
 add_executable(newcsample ${SOURCE_FILES})

但我不想将C文件包含在CMakeFiles.txt中。还有另外一种方法是编辑CMakeFiles吗?

1 个答案:

答案 0 :(得分:3)

CMakeLists.txt文件中进行以下更改

 cmake_minimum_required(VERSION 3.6)
 project(newcsample)

 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

 set(SOURCE_FILES main.cpp foo.c) #all .cpp files and .c files here
 add_executable(newcsample ${SOURCE_FILES})

如果#include你可以只指定当前目录,如果.h文件在那里。