我正在使用Qt Creator编写第一个应用程序,并且已经加载了默认的小部件模板。在mainwindow.cpp,有线#include "ui_mainwindow.h"。但是,该文件尚不存在。编译代码后,我注意到ui_mainwindow.hbuild文件夹中有一个名为的文件。
请有人可以解释这里发生了什么吗?似乎有一个两阶段的构建过程,一个过程是构建用户界面文件(即ui_mainwindow.h),然后一个过程是构建实际程序。在这种情况下,如果将此头文件放在构建目录中,为什么#include "ui_mainwindow.h"而不是#include "../build/ui_mainwindow.h"?
我正在 Qt Creator 中制作一个 C++ 项目,使用 cmake 和我自己的 CMakeLists.txt 文件。如何指定我要在调试模式还是发布模式下构建?这是我在 Qt Creator 或 CMakeLists 中设置的吗?
我想允许外部访问我的网站,该网站由 Windows 7 上的 Django(开发服务器)托管。要在端口 8000 上运行服务器,我输入:
python manage.py runserver 0.0.0.0:8000
Run Code Online (Sandbox Code Playgroud)
如果我禁用 Windows 防火墙,则可以从外部访问它。但是,启用防火墙意味着无法从外部访问它。
因此,我尝试在“控制面板\系统和安全\Windows 防火墙\高级设置”中添加一个“入站规则”。在这里,我允许通过端口 8000 进行入站 TCP 访问。
但是,我的网站仍然无法从外部访问。我还需要做什么?
我有一个双打数组,我想用Eigen库创建一个4乘4的矩阵.我还想指定数据以行主顺序存储.我怎样才能做到这一点?
我尝试了以下,但它没有编译:
double data[16];
Eigen::Matrix4d M = Eigen::Map<Eigen::Matrix4d>(data, 4, 4, Eigen::RowMajor);
Run Code Online (Sandbox Code Playgroud) 我的 OpenGL 程序,使用 GLSL 作为着色器,有一个简单的顶点和片段着色器(由教程提供)。
顶点着色器是:
#version 330
layout (location = 0) in vec3 Position;
void main()
{
gl_Position = vec4(0.5 * Position.x, 0.5 * Position.y, Position.z, 1.0);
}
Run Code Online (Sandbox Code Playgroud)
片段着色器是:
#version 330
out vec4 FragColor;
void main()
{
FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
Run Code Online (Sandbox Code Playgroud)
这里发生的事情是顶点着色器将顶点坐标除以 2,然后片段着色器将其着色为红色。
现在根据我的理解,gl_Position告诉片段着色器这个向量的像素坐标。并且gl_Position是两个着色器都知道的现有变量,因此片段着色器gl_Position在决定在哪里绘制该顶点时将始终寻找。
但是,呢FragColor?在这个例子中,它是在片段着色器中手动定义的。那么 OpenGL 如何知道这FragColor是我们用来设置顶点颜色的变量呢?FragColor可以用不同的名称定义并且程序仍然以相同的方式运行。
所以我想知道为什么gl_PositionOpenGL 已经定义了一个变量,而FragColor手动定义的,以及 OpenGL 如何知道如何解释FragColor?
如果我想创建一个与静态库链接的C++程序,那么最终的可执行文件将包含我程序中的代码和库中的代码(我认为......!).但是我不确定当我与共享库链接时会发生什么.
假设我libfoo.so通过在我的CMakeLists.txt文件中指定行来链接一个被调用的库target_link_libraries(${PROJECT_NAME} foo).我假设最终的可执行文件将包含有关此库的一些信息,但不包含完整的代码.这是什么其他信息?此外,是否必须libfoo.so在用户的系统上完全调用库?
我已经获得了一些源代码和一个CMakeLists.txt文件,并被告知通过以下方式运行 cmake:
cmake ../src -DOPEN_NI_ROOT=/home/karnivaurus/OpenNI
Run Code Online (Sandbox Code Playgroud)
我还注意到有一个名为 的文件,我相信在cmake 调用FindOpenNI.cmake时会使用该文件。find_package(OpenNI)
因此,我猜测这OPEN_NI_ROOT是 cmake 用于其余设置的某种变量。
但是,我尝试将该行插入set(OPEN_NI_ROOT "/home/karnivaurus/OpenNI")到我的CMakeLists.txt文件中,以避免需要在命令行中将其添加为参数。但这似乎并没有做同样的事情。
有人可以解释一下这两种变量类型有何不同吗?
该文件FindOpenNI.cmake是开源的,可以在以下位置找到:
https: //github.com/victorprad/InfiniTAM/blob/master/InfiniTAM/cmake/FindOpenNI.cmake
在Ubuntu 15.10上,我正在运行PyCharm Community Edition版本2016.1.我有一个调用的Python文件import tensorflow,一个依赖于CUDA库的模块libcudart.so.7.5.当我运行此文件时,我收到以下错误消息:
ImportError: libcudart.so.7.5: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)
现在,该文件libcudart.so.7.5位于我的机器上/usr/local/cuda-7.5/lib64.在Pycharm中,我添加了这条路径File->Settings->Project Interpreter->Interpreter Paths.所以,我很困惑为什么PyCharm找不到libcudart.so.7.5包含它的目录被列为解释器路径.
此外,如果我从命令行运行此文件,它运行正常没有上述错误.在我的.bashrc文件中,我有一句话:
export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH
Run Code Online (Sandbox Code Playgroud)
所以这似乎是允许找到库文件.但是我怎样才能让PyCharm找到这个库?我的理解是,添加解释路径的路径是解决方案,但似乎这可能不正确...
谢谢!
在 MatPlotLib 中,我想绘制一个具有线性 x 轴和对数 y 轴的图形。对于 x 轴,标签应为 4 的倍数,小刻度应为 1 的倍数。我已经能够使用该类来做到这一点MultipleLocator。
然而,我很难对对数 y 轴做类似的事情。我希望在 0.1、0.2、0.3 等处有标签,在 0.11、0.12、0.13 等处有小刻度。我已经尝试在类中执行此操作LogLocator,但我不确定正确的参数是什么。
这是我到目前为止所尝试过的:
x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
y = [0.32, 0.30, 0.28, 0.26, 0.24, 0.22, 0.20, 0.18, 0.16, 0.14, 0.12, 0.10]
fig = plt.figure()
ax1 = fig.add_subplot(111)
x_major = MultipleLocator(4)
x_minor = MultipleLocator(1)
ax1.xaxis.set_major_locator(x_major)
ax1.xaxis.set_minor_locator(x_minor)
ax1.set_yscale("log")
y_major = LogLocator(base=10)
y_minor = LogLocator(base=10)
ax1.yaxis.set_major_locator(y_major)
ax1.yaxis.set_minor_locator(y_minor)
ax1.plot(x, y)
plt.show()
Run Code Online (Sandbox Code Playgroud)
这显示了以下情节: …
我正在使用 TensorFlow 在一个非常大的数据集上进行训练,该数据集太大而无法放入 RAM。因此,我将数据集分割成硬盘上的多个分片,并使用该类tf.data.Dataset将分片数据加载到tf.placeholderGPU 内存中。为了跨这些碎片进行训练,我正在考虑两种方法,但我不知道哪一种是最佳实践。他们是:
1) 对于每个 epoch,依次加载每个数据集分片,并在每个分片上训练一次迭代。
2)对于每个epoch,依次加载每个数据集分片,然后在每个分片上训练多次。
1) 的问题是从硬盘加载每个数据集分片需要很长时间,并且由于每个分片仅在每次迭代中进行训练,因此整个训练时间的很大一部分都花在加载这些数据上。然而,2) 的问题在于,连续多次对同一分片进行训练将使优化更有可能收敛到局部最小值。
推荐的方法是什么?
c++ ×3
python ×2
qt ×2
qt-creator ×2
cmake ×1
django ×1
eigen ×1
glsl ×1
importerror ×1
linux ×1
matplotlib ×1
matrix ×1
opengl ×1
pycharm ×1
tensorflow ×1
ubuntu ×1
unix ×1
windows ×1
xticks ×1
yticks ×1