Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.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
C程序(在OS X中)-文件是为存档而构建的,而存档不是链接的体系结构(x86_64)_C_Macos_Static Libraries_Osx Yosemite - Fatal编程技术网

C程序(在OS X中)-文件是为存档而构建的,而存档不是链接的体系结构(x86_64)

C程序(在OS X中)-文件是为存档而构建的,而存档不是链接的体系结构(x86_64),c,macos,static-libraries,osx-yosemite,C,Macos,Static Libraries,Osx Yosemite,我有一个任务,我必须使用一个包含库的给定源代码,即libdb_factory.a和libdb_factory32.a(他们给了我们x86_64和ie386版本) 出现问题的第一个提示是,当对其中任何一个执行lipo-info时,我得到以下信息: fatal error: /Library/Developer/CommandLineTools/usr/bin/lipo: archive with no architecture specification: libdb_factory32.a

我有一个任务,我必须使用一个包含库的给定源代码,即libdb_factory.a和libdb_factory32.a(他们给了我们x86_64和ie386版本)

出现问题的第一个提示是,当对其中任何一个执行lipo-info时,我得到以下信息:

fatal error: /Library/Developer/CommandLineTools/usr/bin/lipo: archive 
with no architecture specification: libdb_factory32.a 
(can't determine architecture for it)
每当我尝试使用make编译代码时,我都会得到以下结果:

Compiling
-n
-n Concurent example [..
ld: warning: ignoring file ./lib//libdb_factory.a, file was built for
 archive which is not the architecture being linked (x86_64): ./lib//libdb_factory.a
Undefined symbols for architecture x86_64:
  "_db_factory_create_element", referenced from:
  _insert_create in factory-0aefa1.o
  "_db_factory_get_element_name", referenced from:
      _transporter in factory-0aefa1.o
  "_db_factory_get_ready_state", referenced from:
      _transporter in factory-0aefa1.o
  "_db_factory_get_stock", referenced from:
      _transporter in factory-0aefa1.o
      _receiver in factory-0aefa1.o
      _insert_update in factory-0aefa1.o
  "_db_factory_init", referenced from:
      _init_factory in factory-0aefa1.o
  "_db_factory_update_stock", referenced from:
      _transporter in factory-0aefa1.o
      _insert_update in factory-0aefa1.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [all] Error 1
引用的函数是库的一部分,将被忽略。 我没有访问linux机器的权限(除非我使用虚拟机),但我知道它在ubuntu 14.04上可以正常工作

有人知道我能做什么吗?任何帮助都将不胜感激。

为Linux编译的静态库(即其中的对象文件)不能在OSX上使用

你唯一能做的就是:

  • 访问源代码并创建库的OSX版本
  • 使用虚拟机生成代码

  • 哦,谢谢你。这有点让人扫兴,因为我无法访问源代码(这等同于在大学作业中作弊哈哈)。@ChrisCS那么你就只能用2了。遗憾的是,他们没有给你在你最喜欢的平台上提供解决方案的自由;如果他们这样做了,你可以在一个树莓圆周率和字面上交在物理机器上的工作。哦,好吧。