我正在编写一个 r 包,它为libSBMLC库提供了一个包装器。
我使用该rcppgsl 包作为参考,它查找头文件和 GNU 科学库的库文件的位置,GSL并使用该信息编写configure脚本Makevars和Makevars.in. 我目前不是为 Windows 构建。在我的机器(macOS)上,libsbml(SBML C 库)安装在通常的位置,即
头文件位于 - /usr/local/include/sbml
和库文件在 - /usr/local/lib。事实上,如果在我的包Makevars文件中使用以下内容,我可以构建我的包.
CXX=clang++
PKG_CPPFLAGS= -I/usr/local/include
PKG_LIBS= $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) /usr/local/lib/libsbml-static.a
Run Code Online (Sandbox Code Playgroud)
但是,我想学习如何使用configure脚本来查找库并使用该信息来构建包。configure.acfrom的相关部分rcppgsl是
## Check for non-standard programs: gsl-config(1)
AC_PATH_PROG([GSL_CONFIG], [gsl-config])
## If gsl-config was found, let's use it
if test "${GSL_CONFIG}" != ""; then
# Use gsl-config for …Run Code Online (Sandbox Code Playgroud) 我想使用 POCO 的库提取单个节点,但不知道该怎么做。我是 XML 的新手。
XML 本身看起来像这样(缩写):
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created by XMLPrettyPrinter on 11/28/2012 from -->
<sbml xmlns = "http://www.sbml.org/sbml/level2/version4" level = "2" version = "4">
<model id = "cell">
<listOfSpecies>
</listOfSpecies>
<listOfParameters>
<parameter id = "kk1" value = "1"/>
</listOfParameters>
<listOfReactions>
<reaction id = "J1" reversible = "false">
... much stuff here ..
</listOfReactions>
</model>
</sbml>
Run Code Online (Sandbox Code Playgroud)
我想提取 listOfReactions 节点中的所有内容并将其存储在 std::string 中,以便稍后进行 MD5 散列。
我试过这个:
ifstream in(JoinPath(gTestDataFolder, "Test_1.xml").c_str());
InputSource src(in);
DOMParser parser;
AutoPtr<Document> pDoc = parser.parse(&src);
NodeIterator it(pDoc, …Run Code Online (Sandbox Code Playgroud)