首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLion:启用编译器错误/警告

CLion:启用编译器错误/警告
EN

Stack Overflow用户
提问于 2016-04-20 23:12:25
回答 3查看 11.3K关注 0票数 7

我在Ubuntu上使用CLion 2016.1.1 (16.04)

当我编译项目时,CMake输出显示:

代码语言:javascript
复制
/opt/clion/bin/cmake/bin/cmake --build 
/home/glapworth/.CLion2016.1/system/cmake/generated/project_name-f43e0982/f43e0982/Debug --target all -- -j 8
[ 33%] Linking C executable 
/home/glapworth/src/project/project_name/bin/project_name

但是,当我执行以下命令时:

代码语言:javascript
复制
/opt/clion/bin/cmake/bin/cmake --build /home/glapworth/.CLion2016.1/system/cmake/generated/project_name-f43e0982/f43e0982/Debug --target all -- -j 8

我可以看到编译器错误:

代码语言:javascript
复制
...
CMakeFiles/project.dir/src/main.c.o: In function `main':
/home/glapworth/src/project/project_name/src/main.c:22: undefined reference to `curl_global_init'
...

如何让CLion显示编译器错误或警告?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-26 05:16:10

这里是错误报告https://youtrack.jetbrains.com/issue/CPP-6559

不,CLion会显示所有编译错误。如果有错误,就不能编译项目。

但是,在构建期间,CLion只会显示一次通知,除非您进行了干净的构建,否则您将不会再看到它们。因为您已经编译了目标文件,如果您没有更改源文件,CLion (CMake)将不会重新构建它们。

CMake假设您知道自己在做什么,并且不会从头开始重新构建所有代码库,所以在第一次编译运行后,您不会看到通知。

票数 4
EN

Stack Overflow用户

发布于 2016-04-26 05:06:10

CLion似乎只在第一次编译时显示错误。如果您意外地进行了第二次编译,您将看不到错误输出。从那以后,我又回到了vim。

但是,如果您想继续使用CLion,并且遇到了同样的问题,则可以在包含CMakeLists.txt的源目录中手动构建Makefile

cmake . make

这将允许您从终端按需编译。

我还倾向于将构建目录设置为./bin,方法是编辑CMakeLists.txt,使其包含以下行

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/bin")

票数 1
EN

Stack Overflow用户

发布于 2016-04-25 21:45:25

你必须检查你的CMakeLists.txt。它长什么样?你也可以尝试清理你的代码,工具-> cmake ->刷新(这两个选项),并且有一个常规的Makefile用来构建,所以如果Clion没有通知你出了什么问题,那么你可以使用常规的Makefile构建。我的CMakeLists.txt看起来像这样

代码语言:javascript
复制
cmake_minimum_required(VERSION 2.8.12)
project(project001)
set(CMAKE_VERBOSE_MAKEFILE on)
file(GLOB SOURCES "./*.c")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wall -pedantic")
add_executable(project001 ${SOURCES})
target_link_libraries(project001 readline)

我对同一项目的Makefile

代码语言:javascript
复制
CC = gcc
GIT_VERSION := $(project001 git describe --abbrev=4 --dirty --always --tags)
CFLAGS := $(CFLAGS) -pedantic -std=c99 -Wall -O3 -ledit -g -DVERSION=\"$(GIT_VERSION)\"

project001: main.o
    $(CC) -o project001 main.o errors.c util.c pipeline.c -ledit

main.o: main.c errors.c util.c

.PHONY: clean
clean:
    rm -f *.o

如果Clion无法编译,那么我会在提示符处修复错误,并使用Clion分析我的代码,以便它编译时没有错误,然后我可以清除Clion中的项目,并从Clion中再次运行它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36748096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档