一、问题描述
使用Clion时,在已有项目中新建一个c源文件,运行提示报错。
错误提示:
ld: 1 duplicate symbols
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
通过查阅各路资料,发现问题应该是clion每一个项目中,有且只有一个main()函数。(在CLion中,其实是一个add_extcutable()中有且只能有一个main()函数。
于是,进行如下操作:
进入项目中的CMakeLists.txt,新增add_excutable()函数。
点击右边小图标,加载CMake更改。
却仍然得到报错:
CMake Error at CMakeLists.txt:7 (add_executable):
add_executable cannot create target "CSDN" because another target with the
same name already exists. The existing target is an executable created in
source directory "/Users/xxxxx/xxxxx/CSDN". See documentation for
policy CMP0002 for more details.
通过阅读错误提示,得知add_excutable(Pref. name.c) 即“Pref.”这个前缀不可重复。由此可以得到此问题的解决方法。
二、问题解决
更改add_excutable(前缀 name.c)函数中的前缀。(注意,name.c与你新建的c文件需要同名)加载CMake更改。
箭头所指的即是在add_excutable()中命名的前缀。
问题就解决啦
小白一枚,欢迎大佬批评指正~