ubuntun下安装codeblocks后无法启动
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 45
- 注册时间: 2017-11-25 22:36
ubuntun下安装codeblocks后无法启动
采用apt-get install codeblocks, 安装都一切正常。但是点击桌面上的codeblocks图标的时候。会显示正在启动,然后过几秒后图标就消失了。无法正常启动。请看下遇到过类似问题没有
- astolia
- 论坛版主
- 帖子: 6444
- 注册时间: 2008-09-18 13:11
Re: ubuntun下安装codeblocks后无法启动
在命令行下运行codeblocks看出错信息。
-
- 帖子: 45
- 注册时间: 2017-11-25 22:36
Re: ubuntun下安装codeblocks后无法启动
root@zhf-maple:/home/zhf/fiddler# codeblocks
codeblocks: symbol lookup error: codeblocks: undefined symbol: _ZN24IncrementalSelectListDlgD1Ev
codeblocks: symbol lookup error: codeblocks: undefined symbol: _ZN24IncrementalSelectListDlgD1Ev
- astolia
- 论坛版主
- 帖子: 6444
- 注册时间: 2008-09-18 13:11
Re: ubuntun下安装codeblocks后无法启动
你系统是哪个版本的,是全新安装还是从低版本升级上来的?有没有用过相关的ppa?
记得在以前某个版本中碰到过这样的问题,你运行一下下面的命令看看结果
记得在以前某个版本中碰到过这样的问题,你运行一下下面的命令看看结果
代码: 全选
ldd `which codeblocks` | grep libcodeblocks
dpkg-query -l '*codeblocks*' | grep ii
-
- 帖子: 45
- 注册时间: 2017-11-25 22:36
Re: ubuntun下安装codeblocks后无法启动
找到原因了。原因是之前手动安装过17.12的source文件。卸载掉17.12-1相关的文件后重新安装就好了
root@zhf-maple:/home/zhf/fiddler# ldd 'which codeblocks' | grep libcodeblocks
ldd: ./which codeblocks: 没有那个文件或目录
root@zhf-maple:/home/zhf/fiddler# dpkg-query -l '*codeblocks*' | grep ii
ii codeblocks 16.01+dfsg-2.1 amd64 Code::Blocks integrated development environment (IDE)
ii codeblocks-common 16.01+dfsg-2.1 all common files for Code::Blocks IDE
ii codeblocks-contrib-common 17.12-1 all common files for the contrib plugins for Code::Blocks IDE
ii codeblocks-headers 17.12-1 all Code::Blocks development headers (SDK)
ii codeblocks-libwxcontrib0 17.12-1 amd64 Code::Blocks shared libraries for wxContribItems
ii codeblocks-wxcontrib-dev 17.12-1 amd64 Code::Blocks development libraries for wxContribItems
ii codeblocks-wxcontrib-headers 17.12-1 all Code::Blocks development headers for wxContribItems
ii libcodeblocks0 17.12-1 amd64 Code::Blocks shared libraries
root@zhf-maple:/home/zhf/fiddler# ldd 'which codeblocks' | grep libcodeblocks
ldd: ./which codeblocks: 没有那个文件或目录
root@zhf-maple:/home/zhf/fiddler# dpkg-query -l '*codeblocks*' | grep ii
ii codeblocks 16.01+dfsg-2.1 amd64 Code::Blocks integrated development environment (IDE)
ii codeblocks-common 16.01+dfsg-2.1 all common files for Code::Blocks IDE
ii codeblocks-contrib-common 17.12-1 all common files for the contrib plugins for Code::Blocks IDE
ii codeblocks-headers 17.12-1 all Code::Blocks development headers (SDK)
ii codeblocks-libwxcontrib0 17.12-1 amd64 Code::Blocks shared libraries for wxContribItems
ii codeblocks-wxcontrib-dev 17.12-1 amd64 Code::Blocks development libraries for wxContribItems
ii codeblocks-wxcontrib-headers 17.12-1 all Code::Blocks development headers for wxContribItems
ii libcodeblocks0 17.12-1 amd64 Code::Blocks shared libraries
-
- 帖子: 45
- 注册时间: 2017-11-25 22:36
Re: ubuntun下安装codeblocks后无法启动
但是在16.10版本下有个问题。
main.c文件如下
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#include "func1.h"
int main()
{
print_info();
return 0;
}
func1.h
#ifndef FUNC1_H_INCLUDED
#define FUNC1_H_INCLUDED
extern void print_info();
#endif // FUNC1_H_INCLUDED
chapter8.c中的代码如下:
void print_info(){
printf("error");
}
编译的时候提示print_info未定义。如果在main.c中修改为#include "chapter8.c"就好了。应该是没把.h文件链接进来。但是同样的设置在windows下是正常工作的。有遇到过类似情况么
-------------- Build: Debug in linux_c (compiler: GNU GCC Compiler)---------------
gcc -Wall -g -c /home/zhf/codeblocks_prj/linux_c/main.c -o obj/Debug/main.o
g++ -o bin/Debug/linux_c obj/Debug/main.o
obj/Debug/main.o:在函数‘main’中:
/home/zhf/codeblocks_prj/linux_c/main.c:20:对‘print_info’未定义的引用
collect2: error: ld returned 1 exit status
main.c文件如下
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
#include "func1.h"
int main()
{
print_info();
return 0;
}
func1.h
#ifndef FUNC1_H_INCLUDED
#define FUNC1_H_INCLUDED
extern void print_info();
#endif // FUNC1_H_INCLUDED
chapter8.c中的代码如下:
void print_info(){
printf("error");
}
编译的时候提示print_info未定义。如果在main.c中修改为#include "chapter8.c"就好了。应该是没把.h文件链接进来。但是同样的设置在windows下是正常工作的。有遇到过类似情况么
-------------- Build: Debug in linux_c (compiler: GNU GCC Compiler)---------------
gcc -Wall -g -c /home/zhf/codeblocks_prj/linux_c/main.c -o obj/Debug/main.o
g++ -o bin/Debug/linux_c obj/Debug/main.o
obj/Debug/main.o:在函数‘main’中:
/home/zhf/codeblocks_prj/linux_c/main.c:20:对‘print_info’未定义的引用
collect2: error: ld returned 1 exit status
- astolia
- 论坛版主
- 帖子: 6444
- 注册时间: 2008-09-18 13:11
Re: ubuntun下安装codeblocks后无法启动
唉,你再仔细看看,我给你写的和你输入的是同一个命令吗?maple412 写了:找到原因了。原因是之前手动安装过17.12的source文件。卸载掉17.12-1相关的文件后重新安装就好了
root@zhf-maple:/home/zhf/fiddler# ldd 'which codeblocks' | grep libcodeblocks
ldd: ./which codeblocks: 没有那个文件或目录
这句话显示出你对编译和链接的过程,以及.h头文件的作用都半懂不懂。网上找找相关资料学学吧maple412 写了:应该是没把.h文件链接进来。
至于那个错误,检查一下是否把chapter8.c加入到当前工程里了,而且当前构建方式(debug或release)里也设置了需要编译。如果不知道怎么看的话,把.cbp工程文件的内容发上来
-
- 帖子: 45
- 注册时间: 2017-11-25 22:36
Re: ubuntun下安装codeblocks后无法启动
cbp文件内容如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="linux_c" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin/Debug/linux_c" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-g" />
</Compiler>
</Target>
<Target title="Release">
<Option output="bin/Release/linux_c" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
</Compiler>
<Unit filename="chapter8.c">
<Option compilerVar="CC" />
<Option target="<{~None~}>" />
</Unit>
<Unit filename="func.h" />
<Unit filename="func1.h" />
<Unit filename="main.c">
<Option compilerVar="CC" />
</Unit>
<Extensions>
<code_completion />
<debugger />
<envvars />
</Extensions>
</Project>
</CodeBlocks_project_file>
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
<FileVersion major="1" minor="6" />
<Project>
<Option title="linux_c" />
<Option pch_mode="2" />
<Option compiler="gcc" />
<Build>
<Target title="Debug">
<Option output="bin/Debug/linux_c" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Debug/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-g" />
</Compiler>
</Target>
<Target title="Release">
<Option output="bin/Release/linux_c" prefix_auto="1" extension_auto="1" />
<Option object_output="obj/Release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build>
<Compiler>
<Add option="-Wall" />
</Compiler>
<Unit filename="chapter8.c">
<Option compilerVar="CC" />
<Option target="<{~None~}>" />
</Unit>
<Unit filename="func.h" />
<Unit filename="func1.h" />
<Unit filename="main.c">
<Option compilerVar="CC" />
</Unit>
<Extensions>
<code_completion />
<debugger />
<envvars />
</Extensions>
</Project>
</CodeBlocks_project_file>
- astolia
- 论坛版主
- 帖子: 6444
- 注册时间: 2008-09-18 13:11
Re: ubuntun下安装codeblocks后无法启动
你看,虽然chapter8.c包含在了工程文件里,但它的target属性是None,也就是无论debug还是release都不编译,自然在链接时就会找不到print_info。
直接把<Option target="<{~None~}>" />这行删掉
直接把<Option target="<{~None~}>" />这行删掉
-
- 帖子: 45
- 注册时间: 2017-11-25 22:36
Re: ubuntun下安装codeblocks后无法启动
多谢,找到原因了,原来是在新建的时候没有选择debug.重新建立工程,选择debug和release后就可以正常工作了