将main.cpp更改为main.c,并停止在Clion上使用CMake构建
Changed main.cpp to main.c and stopped building with CMake on Clion
我的CMake文件包含以下内容
cmake_minimum_required(VERSION 3.3)
project(MyProject)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread")
set(SOURCE_FILES main.c vector.h aLib.h vector.c)
add_executable(MyProject ${SOURCE_FILES})
一旦我将main.cpp
更改为main.c
,我就收到了错误
/home/MyProject/main.c:203:未定义对
pthread_create' /home/MyProject/main.c:210: undefined reference to
pthread_join的引用
它曾经在.cpp
时工作.在终端中,如果我运行gcc -pthread main.c vector.c
它编译器没有问题。一定有一些CMake命令错误,但我不是很熟悉。另外我想我需要删除-std=c++11
?
将文件的扩展名"main.cpp"更改为"main.c"表示编译器处理的不是C++文件,而是 C 文件。
编译 C 与编译 C++ 不同,因此您需要更改构建规则以匹配,可能您还必须重写文件中的代码以遵守 C 标准(C++标准不同),并且您可能很难将 C 启动器链接到其他C++项, 因此,您可能必须找到替代方案(或者如果您有它们的源代码,请重写它们)。
您不能只更改文件名并期望自动完成此工作。 这相当于将"myfile.docx"更改为"myfile.pdf,并认为文件的内部会将自身从Micosoft Word文档重写为PDF。
如果你想保留.c扩展名,但仍使用C++编译器而不是C编译器进行编译,你也可以使用如下的东西:
set_source_files_properties(main.c
PROPERTIES LANGUAGE CXX)
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 无法在 CLion 中构建 C++ 项目
- 代码在main()中运行,但在函数中出现错误
- C++:如何在CLion IDE中安装Boost
- 当我在main中声明了我的2d数组时,为什么我的程序会退出
- QML:修改在不同QML文件(而非main.QML)中定义的子对象的属性
- 不确定要在我的main中放入什么才能使我的代码正常工作
- 函数是否可以访问传递给main()的参数
- 在main()之外初始化std::vector会导致性能下降(多线程)
- 如何使用CLion在Mac上创建一个新的.txt文件
- 我的 int main() 中出现堆栈溢出错误
- IDE (CLion) 无法解析C++模板类型
- Clion显示错误,但可以使用Cmake成功构建代码
- C++变量名(可以将 main 声明为变量,但对于其他函数名称则不然)
- 如何将 CLion C++ 项目导入 Visual Studio?
- 当我尝试在 Main 中调用插入函数时,它不是取数字?
- Boost.TEST with CLion: "Test framework quit unexpectedly"
- File.cpp.o:OpenPose 标志 CMakeFiles/.. 的多重定义/main.cpp.o:首先在这里定
- 为什么类和 main() 函数中也有动态内存分配
- 将main.cpp更改为main.c,并停止在Clion上使用CMake构建