【发布时间】:2009-04-05 03:08:31
【问题描述】:
在我的系统上,expat 位于
/usr/include/expat.h /usr/include/expat_external.h /usr/lib/libexpat.1.5.0.dylib /usr/lib/libexpat.1.dylib /usr/lib/libexpat.dylib /usr/lib/libexpat.la所以我导出了 boost 所需的变量来构建 graphml
导出 EXPAT_INCLUDE=/usr/include 导出 EXPAT_LIBPATH=/usr/lib然后我运行(其中 $DIR 和 $BOOST 生成我想要包含和库去的路径)
./configure --includedir=$DIR/$BOOST --libdir=$DIR/$BOOST/lib \ --with-libraries=test,graph我收到此错误:
ld:找不到 -lexpat collect2 的库:ld 返回 1 个退出状态boost 说是由这条线引起的:
g++ -dynamiclib -install_name "libboost_graph-mt-1_35.dylib" -L"/usr/lib" -o“bin.v2/libs/graph/build/darwin/release/macosx-version-10.4/threading-multi/libboost_graph-mt-1_35.dylib” “bin.v2/libs/graph/build/darwin/release/macosx-version-10.4/threading-multi/read_graphviz_spirit.o” “bin.v2/libs/graph/build/darwin/release/macosx-version-10.4/threading-multi/graphml.o” -lexpat -isysroot /Developer/SDKs/MacOSX10.4u.sdk -mmacosx-version-min=10.4 -Wl,-dead_strip -no_dead_strip_inits_and_terms我不明白为什么找不到以 -L"/usr/lib" 和 -lexpat 作为参数的 expat 库?我的理解是 /usr/lib/libexpat.dylib 完全被引用为 -L"/usr/lib" 和 -lexpat。
用于构建 graphml 的 Jamfile 是 here。如果 EXPAT_INCLUDE 和 EXPAT_LIBPATH 没有设置,那么它会警告你(jamfile 的第 39-41 行)
警告:图形库不包含可选的 GraphML 阅读器。
注意:要启用 GraphML 支持,请设置 EXPAT_INCLUDE 和
注意:分别包含 Expat 头文件和库的目录。
【问题讨论】:
-
我认为您正在尝试创建一个稳定的构建过程?您可能不想尝试在其他几个地方创建指向该库的符号链接以查看它是否找到该库?
标签: boost boost-build graphml