codeblocks使用Makefile编译和debug

本文详细介绍了如何在CodeBlocks中安装和配置环境,以便成功编译Darknet项目。包括更新软件包列表,安装CodeBlocks,设置自定义Makefile,解决编译过程中的常见问题,如nvcc未找到和libcuda.so.1缺失等。同时,还提供了如何在CodeBlocks中添加环境变量以解决运行时的依赖问题。
  1. codeblocks 安装
sudo apt-get  update
sudo apt-get install codeblocks codeblock-contrib
  1. Makefile编译
GPU=1
CUDNN=1
DEBUG= 1

make -j8
不详述

  1. debug 参考
    https://blog.csdn.net/u012927281/article/details/86064511

1)新建项目。

2)添加源代码,这一次我更加直接,将darknet中的代码全部拷贝到了项目目录下。然后回到图形界面中右击“add file
recursively”,选择好源文件所在根目录后,直接选择“open”即可,codeblocks会自动地添加好所有文件,注意此处不会添加*.cu文件。

3)在工程上右键,选择“Project setttings”,单击选择“This is a custom
Makefile”,单击右下角“ok”保存

4)还是在工程上右键,选择“Project build options”,选择“Make
commands”,将其中“$targets”均删除。

至此就可以开始编译了,单击“Build”按钮开始编译,如果在编译过程中出现“nvcc not
found”,首先明确cuda9.0已经安装,同时正确配置在.bashrc文件中。若上述步骤没有问题,可以尝试从命令行中启动codeblocks。推测产生上述问题的原因可能是codeblocks在启动时不加载.bashrc中的路径。

通过以上步骤,darknet就已经完成编译了。

接下来是执行,右键工程,同样选择“properties”,选择“Build targets”,将output
filename改成darknet。单击“Debug”就可以开始调试了。通过上述流程就可以比较轻松的使用IDE进行调试。

如果在启动过程中出现can’t find
libcuda等类似错误,还是由于在当前codeblocks中缺少LD_LIBRARY_PATH路径造成的,因此在codeblocks中添加环境变量。在codeblocks中添加环境变量的方法如此:

1)点击“Setting”

2)选择“Environment settings”

3)选择“Environment variables”

4)添加LD_LIBRARY_PATH环境变量。

  1. DEBUG 追加
	example:   
	./darknet detector train cfg/xxx.data cfg/yolov3.cfg xxx.weights
	在Project ---> Set programs' arguments... ---> Debug--- > Program arguments:
	添加 detector train cfg/xxx.data cfg/yolov3.cfg xxx.weights
	点击 debug按钮即可
  1. 可能问题
ImportError: libcuda.so.1: cannot open shared object file: No such file or directory

添加 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/nvidia/lib64
做处理后试试

### 安装 1. **CodeBlocks**:到www.CodeBlocks.org下载并安装CodeBlocks,建议下载MinGW版本,可省掉安装配置GCC的麻烦,CodeBlocks版本为codeblocks-13.12mingw-setup-TDM-GCC-481.exe [^1]。 2. **wxWidgets**:到www.wxWidgets.org下载并安装wxWidgets,若只开发Windows程序可只下载wxMSW版本,也可下载wxAll版本,wxWidgets版本为wxWidgets - 3.0.0 [^1]。 ### 编译 1. **通用编译**:若不知如何编译,可使用wxbuild.bat进行编译,将其放到wxWidgets - 3.0.0的安装目录里build文件夹同级,双击运行,编译过程约30分钟 [^1]。 2. **特定版本编译(以静态调试版本为例)**:可以把wxWidgets编译为静态/动态链接库的debug/release版本,即静态的调试版本、静态的发行版本、动态的调试版本、动态的发行版本 [^2]。 3. **创建编译脚本**:在C:\wxWidgets - 3.1.3\build\msw、makefile.gcc中创建编译wxCompile.bat文件,内容如下: ```batch @echo off title Compile wxWidgets echo Start Compile ... echo --------------------------------------------------------------------- ::cd %WXWIN%\build\msw ::echo Clean Env ::mingw32-make -f makefile.gcc clean echo Compile Release Version mingw32-make -f makefile.gcc BUILD=release SHARED=0 MONOLITHIC=1 UNICODE=1 echo Compile Debug Version mingw32-make -f makefile.gcc BUILD=debug SHARED=0 MONOLITHIC=1 UNICODE=1 echo --------------------------------------------------------------------- echo Compile Succeed. pause ``` [^3] ### 使用 1. **修改编译选项**:因为CodeBlocks使用GCC编译器,需先改编译选项以支持中文,到Settings -> Compiler and debugger下的Other option标签中加入:-finput-charset=GBK,若源文件是UTF - 8或Unicode编码则改成相应的 [^1]。 2. **新建工程**:完成上述步骤后,即可新建wxWidgets工程 [^1]。
### 在 CodeBlocks 中通过命令行进行编译 为了在 Ubuntu 下使用 CodeBlocks 并结合 CMake 进行项目管理与编译,可以按照以下方法操作: #### 创建新项目 创建一个新的 CodeBlocks 项目,在项目向导中选择“Empty project”,这允许手动编写 `CMakeLists.txt` 文件而不依赖于 IDE 自动生成的构建文件。 #### 设置环境变量 确保 MinGW 或者其他所使用编译器路径已经加入到系统的环境变量中。对于 Linux 用户来说,通常不需要额外设置这些变量因为大多数发行版默认包含了必要的库头文件目录[^3]。 #### 编写 CMakeLists.txt 在一个合适的位置创建名为 `CMakeLists.txt` 的文本文件,并编辑此文件以定义项目的结构以及所需的源码文件。例如: ```cmake cmake_minimum_required(VERSION 3.10) project(MyOpenGLProject) set(CMAKE_CXX_STANDARD 17) add_executable(${PROJECT_NAME} main.cpp) find_package(GL REQUIRED) target_link_libraries(${PROJECT_NAME} GL::GL) ``` #### 使用终端执行 cmake make 命令 打开终端进入包含 `CMakeLists.txt` 文件所在的文件夹,依次运行下面两条指令完成生成 Makefile 及实际编译工作: ```bash mkdir build && cd build cmake .. make ``` 上述过程将会读取根目录下的 `CMakeLists.txt` 来准备相应的构建系统并最终产出可执行文件[^1]。 #### 将外部构建集成至 CodeBlocks 回到 CodeBlocks 内部,右键点击左侧树形视图中的工程名称->Build options... -> Compiler settings -> Other options 添加 `-DCMAKE_BUILD_TYPE=Debug`(如果需要调试版本),接着前往 Linker settings 页面添加链接选项如 `-lglut -lGLU -lGL` (针对 OpenGL 应用)[^5]。 最后保存所有更改并尝试重新构建整个解决方案;现在应该可以在不离开图形界面的情况下享受由命令行驱动的强大灵活性了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值