CodeBlocks编译器配置续

Posted CrazyEngineer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CodeBlocks编译器配置续相关的知识,希望对你有一定的参考价值。

继续探讨上一篇的问题,之前提到,我手贱把 gcc 的安装目录移动了之后, CodeBlocks 检测不到安装的gcc,即使在 CodeBlocks 中按照新的目录配置后,仍旧提示原先的路径找不到。推测肯定是 gcc 的安装程序往 Windows 的注册表里面写入了路径相关的信息。但是去注册表中搜索 gcc 关键词,并没有找到相关的项。于是陷入了窘境,一筹莫展......

我去 gcc 的文件夹翻了一下,发现里面有个 install.exe 和 install.c

抱着试一试的心态,点击运行 install.exe,然后再去CodeBlocks 里面按照相应路径配置,如图

再点击 Auto-detect ,然后配置成功,nice 完美。


附那个 install.c 文件的代码:

#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#include <dir.h>

#include <windows.h>

#include <winreg.h>


void shortcut(char *gccpath,int to) {

char command[800];

        sprintf(command,"shortcut \"%s\\jfe.exe\" %d \"%s\"",gccpath,to,gccpath);

system(command);

}

void Error(void) 

    TCHAR szBuf[80]; 

    LPVOID lpMsgBuf;

    DWORD dw = GetLastError(); 


    FormatMessage(

        FORMAT_MESSAGE_ALLOCATE_BUFFER | 

        FORMAT_MESSAGE_FROM_SYSTEM,

        NULL,

        dw,

        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),

        (LPTSTR) &lpMsgBuf,

        0, NULL );


    printf("Failed with error %d: %s", 

         dw, lpMsgBuf); 

 

//    MessageBox(NULL, szBuf, "Error", MB_OK); 


    LocalFree(lpMsgBuf);


}


int main(int argc,char *argv[]) {

        char cwd[256],winpath[256],gccbin[300];

char command[800];

char shortpath[256];

   chdir("gcc");

   chdir("bin");

getcwd(cwd,256);

   strcpy(gccbin,cwd);

   if(GetShortPathName(gccbin,shortpath,256))

     strcpy(gccbin,shortpath);

   else

     Error();

   printf("Installing to %s\n",gccbin);

GetWindowsDirectory(winpath,256);

   shortcut(gccbin,1);

   shortcut(gccbin,2);

   shortcut(gccbin,3); 

if(RegSetValue(HKEY_CLASSES_ROOT,"gccbinpath",REG_SZ,gccbin,strlen(gccbin)))

puts("Failed to set registry entry");

sprintf(command,"copy \"%s\\gcc.exe\" \"%s\" > NUL",gccbin,winpath);

system(command);

return 0;

}  

技术的道路上,时常会遇到一些奇奇怪怪的Bug,这个时候需要淡定,抱着我能解决的心态面对,有时候,说不定就突然想到办法了。

以上是关于CodeBlocks编译器配置续的主要内容,如果未能解决你的问题,请参考以下文章

集成板的CodeBlocks编译器配置相关文档

不带C编译器的CodeBlocks环境配置

Ubuntu Codeblocks配置Eigen Sophus

codeblocks从安装到环境配置

如何配置codeblock编译环境

CodeBlocks17.12配置GNU GCC + 汉化