我正在尝试编译最初编写的源代码FreeBSD,因为strlcpy 不包含在 linux GlibC 中,所以我现在停在这个阶段。
GCC 建议我可以使用strncpy但我不想实际更改源代码。
我需要重新编译我的 LibC 吗?
任何帮助表示赞赏。
我正在尝试使用 cairo 绘制一些弧线,但 gcc 警告我gdk_cairo_create() is deprecated. Use gdk_window_begin_draw_frame() and gdk_drawing_context_get_cairo_context() instead。
为了解决这个问题,我做了一些研究,发现对于 gdk_window_begin_draw_frame() 我需要“GdkWindow”。我一直在我的窗口中使用 GtkWidget,所以我需要将“GtkWidget”转换为“GdkWindow”,但 gtk_widget_get_window() 返回NULL 并导致段错误。
#include <gtk/gtk.h>
#include <cairo.h>
void main(int argc , char **argv){
gtk_init(&argc , &argv);
GtkWidget *win;
GdkWindow *gdkwin;
GdkDrawingContext *dc;
cairo_region_t *region;
cairo_t *cr;
win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
region = cairo_region_create();
gdkwin = gtk_widget_get_window(GTK_WIDGET(win));
//Here gdkwin should contain a GdkWindow but it's NULL.
gc = gdk_window_begin_draw_frame(gdkwin , (const cairo_region_t*)®ion);
...
...
Run Code Online (Sandbox Code Playgroud)
这是运行时错误:
(a.out:6852): Gdk-CRITICAL **: 23:53:06.042: gdk_window_begin_draw_frame: assertion 'GDK_IS_WINDOW (window)' failed …Run Code Online (Sandbox Code Playgroud) 考虑一下:
xinput --test 11 | grep "button press 1"
Run Code Online (Sandbox Code Playgroud)
* 11是我的光电鼠标索引(可以是其他任何东西),“button press 1”表示左键单击。
当我点击屏幕上的某个地方时,会显示:
button press 1
Run Code Online (Sandbox Code Playgroud)
到目前为止没有问题。但是当我想使用它的输出作为我的 C 程序的输入时,我注意到在另一层管道之后程序的标准输入总是空的:
xinput --test 11 | grep "button press 1" | ./poll_test
Run Code Online (Sandbox Code Playgroud)
这是我的poll_test代码:
xinput --test 11 | grep "button press 1"
Run Code Online (Sandbox Code Playgroud)
尽管有点击,它什么也不打印。
这令人困惑。这不是正常行为。例如,当我运行它时:
ls | grep a | grep b
Run Code Online (Sandbox Code Playgroud)
它成功地向我展示了结果。唯一的区别是lshere 在打印到标准输出后退出,但在xinput版本中并非如此。
我花了很多时间编写一个脚本来在单击鼠标时发出哔哔声,但没有奏效。所以我想使用 C 程序,因为bash 中没有轮询功能。
据我所知,bash 中的管道工作是这样的:
第二个程序(管道语句中的正确程序)被执行,直到它想要从它的stdin读取并且它停止继续前进,直到有一些东西可以从STDIN读取。
考虑到这一点,我发布的命令中的第三个程序应该能够读取输出。第一个程序退出时就是这种情况。
如果管道问题不起作用,下一步将是直接使用libxcb …
我想使用 JS 在 html 图像中进行渐变模糊过渡。我使用的是初始样式,然后使用文档对象和全局变量更新样式属性。
但以下代码不会更新任何内容:
var val = 8
function adjust_blur() {
document.getElementById("image").style.filter = blur(String(val) + "px")
val -= 1;
}
function update_blur() {
window.setTimeout(adjust_blur, 1000)
}Run Code Online (Sandbox Code Playgroud)
#image {
filter: blur(1px);
max-width: 600px;
}Run Code Online (Sandbox Code Playgroud)
<img src='https://image.freepik.com/free-vector/modern-yellow-bitcoin-design_1017-9631.jpg' id='image'>Run Code Online (Sandbox Code Playgroud)
当我尝试编译Blender时遇到以下问题:
Could NOT find PythonLibsUnix (missing: PYTHON_LIBRARY PYTHON_LIBPATH
PYTHON_INCLUDE_DIR PYTHON_INCLUDE_CONFIG_DIR)
Run Code Online (Sandbox Code Playgroud)
操作系统:Ubuntu 20.04。
谢谢。
我按照本指南使用emsdk$PATH安装了 emscripten 并激活了它。然后我按照 emsdk 本身的指示配置了我的文件并获取了源。现在我可以在终端中emsdk-master/emsdk_env.sh访问emcc和。该文件也存在(这是 QtCreator 将生成的文件) fetch 来查找 WASM 编译器的路径)。em++~/.emscripten
Qt 的套件WebAssembly也已由 Qt 安装Maintenance Tool。
现在,在 QtCreator 的套件配置中,我得到了这个(QtCreator 在采购后通过终端打开emsdk_env.sh):
它本身无法确定编译器的路径。
在“编译器”选项卡中,我手动添加了一个编译器,如下所示:
但之后我在“套件”选项卡中收到此错误:
这意味着什么?我跳过了什么?有人有这样做的经验吗?
另外,将编译器从 更改em++为wasm-32-wasi-clang++或clang++不会改变任何内容。
顺便说一句,如果我使用该套件,我会得到:
Error while parsing file whatever.pro. Giving up.
Project ERROR: Cannot run target compiler 'em++'. Output:
===================
===================
Maybe you forgot to setup the environment?
Run Code Online (Sandbox Code Playgroud)
请不要告诉我这个问题是这个 …
我想知道如何在 QtCreator 设计模式下创建默认隐藏的 QLabel?
在右侧面板的属性列表中,没有任何关于功能的选项visibility,并且添加label->hide()到setupUi功能(编译 ui 文件并添加到项目标题后)没有任何区别。
我想编译这个,它需要Qt5.14,并且我从我的 Linux 存储库安装了 Qt 5.12。我刚刚从源代码编译了 Qt 并将其安装在/usr/local/Qt-6.0.0/(默认位置)。
但 CMake 打印以下错误,尽管我添加了set(CMAKE_PREFIX_PATH "/usr/local/Qt-6.0.0/include")和/或set(CMAKE_PREFIX_PATH "/usr/local/Qt-6.0.0/"):
The following configuration files were considered but not accepted:
/usr/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake, version: 5.12.8
/lib/x86_64-linux-gnu/cmake/Qt5/Qt5Config.cmake, version: 5.12.8
Run Code Online (Sandbox Code Playgroud) 我正在尝试编译Pulse Effects项目,运行后遇到了这个问题meson build:
Dependency gstreamer-1.0 found: NO (tried pkgconfig and cmake)
src/meson.build:97:0: ERROR: Dependency "gstreamer-1.0" not found, tried pkgconfig and cmake
Run Code Online (Sandbox Code Playgroud)
但肯定它已经安装并sudo apt install gstreamer-1.0说:
libqt5gstreamer-1.0-0 is already the newest version (1.2.0-5).
gir1.2-gstreamer-1.0 is already the newest version (1.14.5-0ubuntu1~18.04.1)
Run Code Online (Sandbox Code Playgroud)
我使用 ubuntu 18.04。
任何的想法?
linux ×6
qt ×4
qt5 ×3
cmake ×2
bash ×1
blender ×1
build ×1
c ×1
c++ ×1
cairo ×1
css ×1
emscripten ×1
freebsd ×1
gcc ×1
glibc ×1
gtk ×1
html ×1
javascript ×1
meson-build ×1
pipe ×1
qmetaobject ×1
qt-creator ×1
qt-designer ×1
templates ×1
ubuntu-18.04 ×1
webassembly ×1