我知道有大量的帖子,但经历了很多帖子,我发现没有任何效果。
我想在我的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吗?
答案 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文件在那里。