在我的系统上,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"
and -lexpat
。
用于构建 graphml 的 Jamfile 在这里。如果EXPAT_INCLUDE
并且EXPAT_LIBPATH
未设置,则它会警告您(jamfile 的第 39-41 行)
警告:图形库不包含可选的 GraphML 阅读器。
注意:要启用 GraphML 支持,请设置 EXPAT_INCLUDE 和
注意:分别包含 Expat 标头和库的目录。