【发布时间】:2010-11-14 21:33:35
【问题描述】:
在带有 i686-apple-darwin10-g++-4.2.1 的 OSX 10.6.4 上使用 TextMate 和一个 Makefile 进行编译,该文件首先是为 Linux 制作的,我正在尝试为 OSX 翻译。
编译 c++ 项目时出现“无法与主可执行文件链接”错误:
g++ -Wall -g -I ~/svnX-Repository/axp-Projekte/xrlfupa/trunk/src/ -I ~/svnX-Repository/boost_1_44_0 -I /opt/local/var/macports/software/boost/1.44.0_0/opt/local/lib/ -I /opt/local/var/macports/software/gsl/1.14_0/opt/local/include/ -o xrfLibTest xrfLibTest.o excitFunctions.o xrfFunctions.o filterFunctions.o detectorFunctions.o -L/opt/local/var/macports/software/boost/1.44.0_0/opt/local/lib/ -L/opt/local/var/macports/software/gsl/1.14_0/opt/local/lib/ -lm -lxrlTUB -lboost_serialization -lgsl -lgslcblas # Debug 1
ld: in /usr/local/lib/libxrlTUB.so, can't link with a main executable
collect2: ld returned 1 exit status
make: *** [prog] Error 1
提到的库(libxrlTUB.so)在它的位置(/usr/local/lib/libxrlTUB.so)但是,可能这就是问题所在,libxrlTUB.so 已经由我事先编译也是。 编译过程通过了,是swig生成的,虽然有警告:
g++ -arch x86_64 -m32 -g -fpic -I /usr/include/python2.6 -c PyXrl_wrap.cxx
In function 'void SWIG_Python_AddErrorMsg(const char*)':
warning: format not a string literal and no format arguments
据我所知,这应该不是问题。 (或者是吗?)
不幸的是,这整件事是大学项目的一部分。实际上,我应该在 python 中编写一个 X 射线分析脚本,这很好,如果......好吧,如果我不希望使用从这个 c++ 项目产生的库。 (之后它们应该通过在 python 中的导入来使用。)
我对 c++ 并没有真正的经验,也没有在 OSX 系统上编译。到目前为止,我一直在为 scipting(python、bash 等)而烦恼。所以也许我只是错过了一些简单的东西。希望有人能给我一个提示,我可以继续阅读以处理上述“无法与主可执行文件链接”错误...
提前谢谢, 利亚姆
【问题讨论】:
-
库有没有公开的SVN库,方便我们自己编译看看有什么问题?
标签: c++ python macos linker swig