无法在CodeBlocks中编译c项目。进程以状态1终止

时间:2015-02-17 06:51:15

标签: c build codeblocks

我有一个C语言的项目,它在Visual Studio中编译得很好,没有任何问题。但由于某些原因,我需要在CodeBlocks中编译它。我无法找到构建项目时出现此错误的原因。这是完整的构建日志:

mingw32-gcc.exe  -g -W -O0 -DWIN32 -D_DEBUG -D_WINDOWS -D_USRDLL -DSERVICE_EXPORTS -DAXIS2_DECLARE_EXPORT    -IC:\Tools\axis2c-bin-1.6.0-win32\include -I. -IC:\Tools\axis2c-bin-1.6.0-win32\include -IC:\Tools\axis2c-bin-1.6.0-win32\include\platforms -IE:\dev\CodeBlocks\MinGW  -c C:\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c\src_addToDatabase_CodeBlocks\adb_Person.c -o "Debug Win32\adb_Person.o"
mingw32-gcc.exe  -g -W -O0 -DWIN32 -D_DEBUG -D_WINDOWS -D_USRDLL -DSERVICE_EXPORTS -DAXIS2_DECLARE_EXPORT    -IC:\Tools\axis2c-bin-1.6.0-win32\include -I. -IC:\Tools\axis2c-bin-1.6.0-win32\include -IC:\Tools\axis2c-bin-1.6.0-win32\include\platforms -IE:\dev\CodeBlocks\MinGW  -c C:\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c\src_addToDatabase_CodeBlocks\adb_addTodatabaseMethod.c -o "Debug Win32\adb_addTodatabaseMethod.o"
mingw32-gcc.exe  -g -W -O0 -DWIN32 -D_DEBUG -D_WINDOWS -D_USRDLL -DSERVICE_EXPORTS -DAXIS2_DECLARE_EXPORT    -IC:\Tools\axis2c-bin-1.6.0-win32\include -I. -IC:\Tools\axis2c-bin-1.6.0-win32\include -IC:\Tools\axis2c-bin-1.6.0-win32\include\platforms -IE:\dev\CodeBlocks\MinGW  -c C:\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c\src_addToDatabase_CodeBlocks\adb_addTodatabaseMethodResponse.c -o "Debug Win32\adb_addTodatabaseMethodResponse.o"
mingw32-gcc.exe  -g -W -O0 -DWIN32 -D_DEBUG -D_WINDOWS -D_USRDLL -DSERVICE_EXPORTS -DAXIS2_DECLARE_EXPORT    -IC:\Tools\axis2c-bin-1.6.0-win32\include -I. -IC:\Tools\axis2c-bin-1.6.0-win32\include -IC:\Tools\axis2c-bin-1.6.0-win32\include\platforms -IE:\dev\CodeBlocks\MinGW  -c C:\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c\src_addToDatabase_CodeBlocks\axis2_extension_mapper.c -o "Debug Win32\axis2_extension_mapper.o"
mingw32-gcc.exe  -g -W -O0 -DWIN32 -D_DEBUG -D_WINDOWS -D_USRDLL -DSERVICE_EXPORTS -DAXIS2_DECLARE_EXPORT    -IC:\Tools\axis2c-bin-1.6.0-win32\include -I. -IC:\Tools\axis2c-bin-1.6.0-win32\include -IC:\Tools\axis2c-bin-1.6.0-win32\include\platforms -IE:\dev\CodeBlocks\MinGW  -c C:\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c\src_addToDatabase_CodeBlocks\axis2_stub_AddToDatabaseService.c -o "Debug Win32\axis2_stub_AddToDatabaseService.o"
mingw32-gcc.exe  -g -W -O0 -DWIN32 -D_DEBUG -D_WINDOWS -D_USRDLL -DSERVICE_EXPORTS -DAXIS2_DECLARE_EXPORT    -IC:\Tools\axis2c-bin-1.6.0-win32\include -I. -IC:\Tools\axis2c-bin-1.6.0-win32\include -IC:\Tools\axis2c-bin-1.6.0-win32\include\platforms -IE:\dev\CodeBlocks\MinGW  -c C:\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c\src_addToDatabase_CodeBlocks\main.c -o "Debug Win32\main.o"
mingw32-gcc.exe  -g -W -O0 -DWIN32 -D_DEBUG -D_WINDOWS -D_USRDLL -DSERVICE_EXPORTS -DAXIS2_DECLARE_EXPORT    -IC:\Tools\axis2c-bin-1.6.0-win32\include -I. -IC:\Tools\axis2c-bin-1.6.0-win32\include -IC:\Tools\axis2c-bin-1.6.0-win32\include\platforms -IE:\dev\CodeBlocks\MinGW  -c C:\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c\src_addToDatabase_CodeBlocks\adb_Message.c -o "Debug Win32\adb_Message.o"
mingw32-g++.exe -LC:\Tools\axis2c-bin-1.6.0-win32\lib -LC:\Tools\axis2c-bin-1.6.0-win32\lib -LE:\dev\CodeBlocks\MinGW\lib  -o AddToDatabaseServiceClient.exe "Debug Win32\adb_Person.o" "Debug Win32\adb_addTodatabaseMethod.o" "Debug Win32\adb_addTodatabaseMethodResponse.o" "Debug Win32\axis2_extension_mapper.o" "Debug Win32\axis2_stub_AddToDatabaseService.o" "Debug Win32\main.o" "Debug Win32\adb_Message.o"    C:\Tools\axis2c-bin-1.6.0-win32\lib C:\Tools\axis2c-bin-1.6.0-win32\lib\axiom.lib C:\Tools\axis2c-bin-1.6.0-win32\lib\axutil.lib C:\Tools\axis2c-bin-1.6.0-win32\lib\axis2_engine.lib 
e:/dev/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/bin/ld.exe: C:\Tools\axis2c-bin-1.6.0-win32\lib: No such file: Permission denied
collect2: ld returned 1 exit status

Process terminated with status 1 (0 minutes, 8 seconds)
0 errors, 0 warnings

我正在使用CodeBlocks 10.05和GNU GCC编译器(minGW)。该项目是一个axis2c生成的C Web服务客户端。

我将-fPI C放在编译器设置下的其他选项标签中。然后我重建了这个项目。正如CodeBlocks-wiki中提到的那样。我试图运行该应用程序,但我又遇到了这个错误。

我在This link中发布了另一个与此问题相关的问题。如果有人帮助我,我会很感激。

2 个答案:

答案 0 :(得分:1)

您是否看到链接器的错误消息显示:

  

C:\ Tools \ axis2c-bin-1.6.0-win32 \ lib:没有这样的文件

那是因为 没有C:\Tools\axis2c-bin-1.6.0-win32\lib这样的文件。它是一个目录,您无法“链接目录”,就像您无法“编译目录”一样。

我们可以确定它是一个目录,因为您链接的所有库都是目录中:

C:\Tools\axis2c-bin-1.6.0-win32\lib\axiom.lib 
C:\Tools\axis2c-bin-1.6.0-win32\lib\axutil.lib 
C:\Tools\axis2c-bin-1.6.0-win32\lib\axis2_engine.lib

并且还因为您已指定(两次)它是链接器应搜索以查找库的目录:

-LC:\Tools\axis2c-bin-1.6.0-win32\lib -LC:\Tools\axis2c-bin-1.6.0-win32\lib 

您需要:

  • 链接库设置中的C:\Tools\axis2c-bin-1.6.0-win32\lib替换为 C:\Tools\axis2c-bin-1.6.0-win32\lib\<name_of_some_missing_library>.lib

或者,如果没有丢失的库(上面的3就是你需要的),那么:

  • 链接库设置
  • 中删除C:\Tools\axis2c-bin-1.6.0-win32\lib

您也可以从其他链接器选项中删除-LC:\Tools\axis2c-bin-1.6.0-win32\lib (如果这是您指定此链接器搜索路径的方式),和/或您可以删除 {strong>搜索目录中的C:\Tools\axis2c-bin-1.6.0-win32\lib - &gt;链接器(如果 这就是你完成它的方式)。您是按绝对值指定所有axis库 路径名,因此无需告诉链接器在哪里查找它们。

您可能还通过指定它来生成此重复的链接器搜索路径 一旦进入设置 - &gt;编译器 - &gt;全局编译器设置,再次在链接器设置搜索目录 - &gt;您项目的链接器。如果是这样,请将其从全局编译器设置中删除。 这些设置是您希望应用于使用编译器构建的每个项目的设置:这是 Global 的重要性。

-fPIC无关紧要,您不需要它来构建.exe

答案 1 :(得分:0)

我做了@Mike Kinghan所说的话。 加上我搜索并发现我使用的库是用MSVC ++编译的,不能与MinGW一起使用。根据{{​​3}}主题。

  • 我使用 reimp
  • 创建了.def文件
  • 然后我修改了.def文件中的每个stdcall函数(我更改了#34; _name @ ordinal&#34;到&#34; name&#34;)
  • 然后我使用 dlltool 创建.a文件。

我将.a文件链接到我的项目。 一切都很顺利,我可以编译我的项目。但是当我试图运行它。我收到了这个错误。

  

无法在动态链接库

中找到过程入口点axiom_attribute_create

我不知道该怎么做。