Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在XCode中链接C文件的问题_C_Xcode - Fatal编程技术网

在XCode中链接C文件的问题

在XCode中链接C文件的问题,c,xcode,C,Xcode,首先我要提到的是,我编译C代码的经验是有限的,我尝试做的事情甚至可能是不可能的。然而,我已经成功地将Objective-C代码与桥接文件一起使用,并且希望在使用普通C文件时也能应用同样的方法 我试图使用来自的源文件来构建一个简单的GUI版本 注意:我确实按照说明并使用makefile从终端成功编译了源代码,但在XCode中没有成功编译 我首先想尝试通过XCode以控制台应用程序的形式构建程序,无论我做什么尝试,我都会继续得到相同的结果。以下是我遵循的步骤: 在XCode中创建了一个新的控制台应用

首先我要提到的是,我编译C代码的经验是有限的,我尝试做的事情甚至可能是不可能的。然而,我已经成功地将Objective-C代码与桥接文件一起使用,并且希望在使用普通C文件时也能应用同样的方法

我试图使用来自的源文件来构建一个简单的GUI版本

注意:我确实按照说明并使用makefile从终端成功编译了源代码,但在XCode中没有成功编译

我首先想尝试通过XCode以控制台应用程序的形式构建程序,无论我做什么尝试,我都会继续得到相同的结果。以下是我遵循的步骤:

  • 在XCode中创建了一个新的控制台应用程序
  • 已将所有.c和.h文件添加到项目中
  • 在标题、框架和库搜索路径中添加了“/usr/local/include/**”。这是我的libusb.h和usb.h生活的地方
  • 建造
  • 我的生成始终失败,并出现相同的链接器错误:

    Undefined symbols for architecture x86_64:
      "_debug", referenced from:
      _stm32_read_flash in stm32.o
      _print_progress in stm32.o
      _stm32_write_flash in stm32.o
      _parse_arguments in arguments.o
      _assign_global_options in arguments.o
      _print_args in arguments.o
      _atmel_read_flash in atmel.o
      ...
     (maybe you meant: _dfu_debug)
      "_usb_claim_interface", referenced from:
      _dfu_device_init in dfu.o 
    
    等等

    据我所知,它寻找的所有未定义符号都来自libusb.h。它似乎认为编译.h和.c文件是可以的,但之后尝试链接.o文件时失败了

    我希望我的XCode设置中缺少了一些东西来实现这一点


    提前谢谢

    是否已将库添加到链接阶段?请对照必要的库检查链接,并包括所需的头文件。如果您使用Makefile,您可以在编译中包含头文件dir,因为-II在构建阶段的“linkbinary with libraries”部分中没有链接库,因为如果它们没有出现在列表中(它们在隐藏的/usr/…目录中),我不知道如何链接它们。在谷歌搜索并找到Shift-Cmd-G快捷方式后,我能够直接键入位置。我相信它是有效的,因为现在我只剩下一组错误了,我认为这是由每个C文件都有自己的调试(…)宏定义引起的,XCode每次都警告为“重新定义调试宏”。我猜XCode不喜欢这个?我得重新命名它们。