- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
说明在这里:http://sourceforge.net/p/rnnl/wiki/Home/
我在 RNNLIb 文件夹的根目录中键入 ./configure。
输出:
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking for g++... g++
checking for C++ compiler default output file name... a.out
checking whether the C++ compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking dependency style of gcc... gcc3
checking for a BSD-compatible install... /usr/bin/install -c
checking for main in -lstdc++... yes
checking for exp in -lm... yes
checking for main in -lnetcdf... yes
checking for main in -lnetcdf_c++... no
checking how to run the C++ preprocessor... g++ -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking malloc.h usability... no
checking malloc.h presence... no
checking for malloc.h... no
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
这似乎令人不安
checking malloc.h usability... no
checking malloc.h presence... no
和
checking for main in -lnetcdf_c++... no
全部返回编号
然后我输入 make,我得到:
g++ -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT DataExporter.o -MD -MP -MF .deps/DataExporter.Tpo -c -o DataExporter.o DataExporter.cpp
In file included from DataExporter.cpp:18:
In file included from ./DataExporter.hpp:24:
./Helpers.hpp:724:18: error: expected expression
out << t.get<0>() << " " << t.get<1>();
^
./Helpers.hpp:724:39: error: expected expression
out << t.get<0>() << " " << t.get<1>();
... A bunch more similar error messages ...
In file included from DataExporter.cpp:18:
In file included from ./DataExporter.hpp:25:
In file included from ./SeqBuffer.hpp:21:
In file included from ./MultiArray.hpp:31:
./Container.hpp:113:14: warning: reference 'front' is not yet bound
to a value
when used within its own initialization [-Wuninitialized]
T& front = front();
~~~~~ ^~~~~
1 warning and 14 errors generated.
make[2]: *** [DataExporter.o] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2
我不确定如何解决这个问题。是什么导致了这些错误,我该如何消除它们?
最佳答案
看起来这是为 GNU C++ 编译器设计的(不是在 Yosemite 中伪装成 g++
的 Clang 编译器),因此使用该编译器进行编译会更容易。
如果您没有 Homebrew package manager ,你可以通过执行安装它:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
现在通过运行安装 gcc 4.9:
brew install gcc49
GNU C++ 编译器现在可用 g++-4.9
.
接下来,netcdf
的兼容版本必须安装库(不是最新的)。参见 this Stackoverflow question ,或直接下载 ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-cxx-4.2.tar.gz
一旦那个版本netcdf
已提取,cd
进入输出目录并运行以下命令(注意 CXX=g++-4.9
使用该编译器而不是默认编译器构建):
CXX=g++-4.9 ./configure
make
make install
make check
现在回到rnnlib
本身:
您仍然需要应用一些补丁才能获得 rnnlib
用 g++-4.9
编译(但打补丁比使用 Clang 少),如 this sourceforge thread 中所述.
四个定义range_min_size
模板函数在首次用于 src/Helpers.hpp
之前需要移动. src/Container.hpp
还需要一个小补丁调用resize()
方法为 this->resize()
.这是补丁:
diff -Naur rnnlib_orig/src/Container.hpp rnnlib_gcc_test/src/Container.hpp
--- rnnlib_orig/src/Container.hpp 2013-08-16 11:00:38.000000000 +0100
+++ rnnlib_gcc_test/src/Container.hpp 2015-03-18 21:30:11.000000000 +0000
@@ -154,7 +154,7 @@
}
template<class R> Vector<T>& operator =(const R& r)
{
- resize(boost::size(r));
+ this->resize(boost::size(r));
copy(r, *this);
return *this;
}
diff -Naur rnnlib_orig/src/Helpers.hpp rnnlib_gcc_test/src/Helpers.hpp
--- rnnlib_orig/src/Helpers.hpp 2013-08-20 10:39:39.000000000 +0100
+++ rnnlib_gcc_test/src/Helpers.hpp 2015-03-18 21:29:47.000000000 +0000
@@ -296,6 +296,22 @@
}
return count;
}
+template<class R1, class R2> static size_t range_min_size (const R1& a, const R2& b)
+{
+ return min(boost::size(a), boost::size(b));
+}
+template<class R1, class R2, class R3> static size_t range_min_size (const R1& a, const R2& b, const R3& c)
+{
+ return min(min(boost::size(a), boost::size(b)), boost::size(c));
+}
+template<class R1, class R2, class R3, class R4> static size_t range_min_size (const R1& a, const R2& b, const R3& c, const R4& d)
+{
+ return min(min(min(boost::size(a), boost::size(b)), boost::size(c)), boost::size(d));
+}
+template<class R1, class R2, class R3, class R4, class R5> static size_t range_min_size (const R1& a, const R2& b, const R3& c, const R4& d, const R5& e)
+{
+ return min(min(min(min(boost::size(a), boost::size(b)), boost::size(c)), boost::size(d)), boost::size(e));
+}
template <class R1, class R2> static pair<zip_iterator<tuple<typename range_iterator<R1>::type, typename range_iterator<R2>::type> >,
zip_iterator<tuple<typename range_iterator<R1>::type, typename range_iterator<R2>::type> > >
zip(R1& r1, R2& r2)
@@ -529,22 +545,6 @@
delete *it;
}
}
-template<class R1, class R2> static size_t range_min_size (const R1& a, const R2& b)
-{
- return min(boost::size(a), boost::size(b));
-}
-template<class R1, class R2, class R3> static size_t range_min_size (const R1& a, const R2& b, const R3& c)
-{
- return min(min(boost::size(a), boost::size(b)), boost::size(c));
-}
-template<class R1, class R2, class R3, class R4> static size_t range_min_size (const R1& a, const R2& b, const R3& c, const R4& d)
-{
- return min(min(min(boost::size(a), boost::size(b)), boost::size(c)), boost::size(d));
-}
-template<class R1, class R2, class R3, class R4, class R5> static size_t range_min_size (const R1& a, const R2& b, const R3& c, const R4& d, const R5& e)
-{
- return min(min(min(min(boost::size(a), boost::size(b)), boost::size(c)), boost::size(d)), boost::size(e));
-}
template <class R> static int arg_max(const R& r)
{
return distance(boost::begin(r), max_element(boost::begin(r), boost::end(r)));
或者从 Github gist 下载这个补丁,因为它不太容易出错:https://gist.github.com/0David/13d872c88172c75d4663
您可以通过 cd
申请-进入你的rnnlib
目录和运行:
patch -p1 < ../patch.txt
(将 patch.txt
替换为您命名的上述补丁文件)。
现在你必须运行 configure
再次指定 g++-4.9
(所以它会选择我们刚刚构建的 netcdf
库),然后是 make
:
CXX=g++-4.9 ./configure
make
现在您将拥有一个可用的 bin/rnnlib
可执行文件(如果您愿意,可以使用 make install
安装)。
如果您确实需要 Clang,那么 this Stackoverflow question涉及导致您在问题中显示的编译错误的问题,因此 src/Helpers.hpp
将需要更新以替换像 t.get<0>
这样的调用与 t.template get<0>
,但除此之外还有进一步的编译问题,因此使用 GNU C++ 构建更容易。
It seems troubling that
checking malloc.h usability... no
checking malloc.h presence... no
您不必为此担心; malloc.h
不是标准头文件( malloc
在 stdlib.h
中声明)。参见示例 this Stackoverflow answer .
关于c++ - 无法在 Mac OSX (Yosemite) 上安装 RNNLIB (http ://sourceforge.net/p/rnnl/wiki/Home/),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28841574/
在 SourceForge Tracker UI 上观察和监控项目到底有什么区别? 工具提示并没有真正的帮助。 将鼠标悬停在“监控”按钮上,它会显示“监控此项目”。把它放在“ watch ”上,它什么
当我更新我的 Sourceforge 项目上的某些文件时,最后上传的文件总是自动在下载页面上作为“寻找最新版本?下载...”提供,并且它成为项目首页的默认下载。 我的问题是,在一个项目中,有主要的源代
我需要从 SourceForge 下载一个项目,但没有简单可见的方法。 在这里,在这张图片上(链接下来,没有足够的声誉),可以下载“最新版本”,它只包含第一个文件夹中的文件,但我需要下载其他文件夹。
我的软件包依赖于 sourceforge.net 中的一些二进制文件,我想自动执行构建步骤,如何找到最新版本号来下载? 最佳答案 我认为这个 API 会对您有所帮助 https://sourcefor
好的,我想使用 SourceForge 来托管我的程序源代码,但我不知道如何使用 SVN 或 CVS。我试着查看教程,但它们似乎都以检索源代码为导向,而不是添加到源代码中。截至目前,存储库是空的(那里
我创建了一个自动化应用程序并将其设置为在登录时运行,然后我选中了“隐藏”框,但它仍然显示在状态栏中(齿轮图标)。我怎样才能隐藏它? 我在这里选中“隐藏”框: 但齿轮图标仍然显示(更糟糕的是它永远不会停
我目前在 SourceForge 中维护一个开源项目。我的项目是使用 ANT 构建脚本用 Java 编写的。 (Ant 安装了一些扩展,但我们暂时忽略它。) 不幸的是,似乎没有简单的方法来自动生成每日
在对其他问题的回答中指出,SourceForge 的下载页面通过添加隐藏的 来工作。这似乎不再是这种情况...... 当前版本的下载页面是如何实现的?我想构建类似的东西,因为我认为 SF 的解决方案
我在 SourceForge 中有一个项目:Kryptostr ,我想修改默认网页。我怎样才能做到这一点?我可以使用 JavaScript 吗?我可以使用某种服务器 Web 语言,如 ASP、PHP
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 6年前关闭。 Improve thi
我有一个依赖 Jacob 的项目. Maven Central 上的工件已经过时了,所以我想直接从 SF 下载它们。但我不知道如何用 gradle 做到这一点。 更具体地说,我试图实现的是: 从 SF
我有一个使用 Mercurial 在 Sourceforge.net 上托管的项目。 是否有任何免费的持续集成服务可以与开源项目交互并在每次向上游推送时开始构建? 我在 方面有很好的经验travic-
经过一些论坛对话后,我想尝试纠正基于 SourceForge 的项目 (DataNucleus) 的一些开源代码。 就我看来,一切都像大多数其他开源项目一样配置。 我的目标是配置环境,以便我可以运行他
在花了大约一个小时从 sourceforge 下载几乎所有 Msys 软件包之后,我想知道是否有更聪明的方法来做到这一点。是否可以使用 wget 来实现此目的? 最佳答案 我已成功使用此脚本: htt
有人成功运行 JFuzzyLogic 演示吗?我下载了 zip 文件,并将其解压。能够运行提示示例,但还有其他几个示例未运行。另外,Eclipse 项目的源文件夹中似乎没有 net,这阻止了我运行它们
SimpleXML可以很好地序列化 Java Enum,但是当涉及到反序列化时,它返回 null 而不是从生成的 XML 创建 Enum。根本不支持 Enum 序列化是我做错了吗? 序列化返回:
我正尝试在基于 Sourceforge 的问题跟踪器上创建一个带有附件的票证。 Sourceforge 使用 Apache Allura。 根据 Sourceforge's documentation
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 7 年前。 Improve
我正在尝试在我的 bash 脚本中从 Sourceforge 下载最新版本的 graphicsmagick wget -q https://sourceforge.net/projects/graph
我有一个使用平台特定库的 Java 项目。它们很大,但我可以在安装程序中找出我需要的并下载它们。我想从 Sourceforge(我的项目的其余部分所在的地方)下载它们。 有没有办法从 SF 自动下载?
我是一名优秀的程序员,十分优秀!