小编Hal*_*ate的帖子

如何强制gcc内联函数?

是否__attribute__((always_inline))强制函数由gcc内联?

gcc inline compiler-flags

57
推荐指数
6
解决办法
5万
查看次数

在OSX上使用Waf编译OpenGL/SDL应用程序时如何禁止'-arch','x86_64'标志?

我需要压制"-arch x86_64 -arch i386"标志Waf传递给GCC.

我正在构建一个SDL/Opengl应用程序.如果我链接32位SDL运行时我得到错误

    Undefined symbols for architecture i386:
  "_SDL_Quit", referenced from:
      __del_video in SDL_functions.c.2.o
      __init_video in SDL_functions.c.2.o
Run Code Online (Sandbox Code Playgroud)

如果我链接到64位SDL运行时,我会收到错误"架构x86_64的未定义符号"

编译器显然使用标志

-arch x86_64 -arch i386
Run Code Online (Sandbox Code Playgroud)

据我所知,这会导致OSX上的GCC尝试编译这两种架构.我想编译为64位,或编译为32位.如何抑制一个架构的标志?

opengl macos sdl waf

21
推荐指数
1
解决办法
1745
查看次数

我可以静态地将Cython模块链接到嵌入python的可执行文件中吗?

我目前有一个从C++编译的嵌入式python的可执行文件.嵌入式可执行文件运行一个python脚本,它加载了几个Cython模块.Cython模块和可执行文件都链接到共享库.

我想通过静态链接共享库和可执行文件将共享库移动到可执行文件中.

我可以将Cython模块静态链接到嵌入python的可执行文件中吗?处理这种情况的最佳方法是什么?

python static-libraries cython

7
推荐指数
1
解决办法
2897
查看次数

我正在从localhost向localhost发送UDP数据包,并且有时会丢弃数据包.我如何阻止这种情况以及为什么会发生这种情况?

这是我的程序输出

sending agent update
Created new player
Identified
sending agent update
Physics: 2 ticks this frame
time= 200
time= 300
***Packet Dropped: 2:10 ***
***Packet Dropped: 2:11 ***
***Packet Dropped: 2:12 ***
***Packet Dropped: 2:13 ***
***Packet Dropped: 2:14 ***
***Packet Dropped: 2:15 ***
***Packet Dropped: 2:16 ***
***Packet Dropped: 2:17 ***
***Packet Dropped: 2:18 ***
***Packet Dropped: 2:19 ***
***Packet Dropped: 2:20 ***
***Packet Dropped: 2:21 ***
time= 400
Physics: 2 ticks this frame
time= 500
Physics: 2 ticks …
Run Code Online (Sandbox Code Playgroud)

c++ sockets networking udp

7
推荐指数
1
解决办法
5418
查看次数

如何将多个Cython pyx文件合并到一个链接库中?

我有多个.pyx文件,有没有办法将它们导入单个pyx文件并将该文件编译成共享库,而不必编译15个独立模块?

python cython

7
推荐指数
1
解决办法
3659
查看次数

如何正确链接和构建动态链接库?

我在linux.我的Makefile文件就是这个

main2: main.cpp
g++ -c $(LIBS) $(CFLAGS) -fPIC main.cpp
g++ -shared main.o -o main.so 
Run Code Online (Sandbox Code Playgroud)

哪里,

SDL_CFLAGS := $(shell sdl-config --cflags)
SDL_LDFLAGS := $(shell sdl-config --libs)
CC = gcc
COPTS = -g -Wall
CFLAGS = $(SDL_CFLAGS)
LIBS = -lstdc++ -lSDL $(SDL_LDFLAGS) -L/usr/X11R6/lib -lGL -lGLU
Run Code Online (Sandbox Code Playgroud)

哪个运行

g++ -c -lstdc++ -lSDL -L/usr/lib -lSDL -L/usr/X11R6/lib -lGL -lGLU -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -fPIC main.cpp

g++ -shared main.o -o main.so
Run Code Online (Sandbox Code Playgroud)

现在,这没有错误.生成main.o和main.so文件.

但是,当我尝试将main.os与python ctypes链接时

from ctypes import * import os
libtest = cdll.LoadLibrary(os.getcwd()+ '/main.so') libtest.main_loop()
libtest.main_loop()
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

>>> …
Run Code Online (Sandbox Code Playgroud)

c++ opengl build-process ctypes

6
推荐指数
1
解决办法
2996
查看次数

我需要定义__setattr__来分配没有属性的字段,但是对于定义了属性的字段使用setter/getter函数

定义__setattr__覆盖我在类中定义的所有setter方法/属性.我想在属性中使用已定义的setter方法,如果字段存在属性,self.__dict__[name] = value否则使用 .

救命!我找到了一个使用的解决方案__setitem__,但这对我不起作用

属性存储在python类中的哪个位置?我如何访问它们?

如何定义__setattr__以便它使用定义了setter方法的字段的属性?

class test(object):

def _get_gx(self):
    print "get!"
    return self.__dict__['gx']

def _set_gx(self, gx):
    print "set!"
    self.__dict__['gx'] = gx
    gx = property(_get_gx, _set_gx)

def __setattr__(self, name, value):
    self.__dict__[name] = value

def __init__(self):
    pass
Run Code Online (Sandbox Code Playgroud)

也,

为什么"得到!" 我这样做了两次,

x = test()
x.gx = 4
x.gx

prints: 

   "gets!"
   "gets!"
   4
Run Code Online (Sandbox Code Playgroud)

python

5
推荐指数
1
解决办法
6425
查看次数

如何将Pylint与Geany集成,以便我可以将Geany用作python IDE?

http://michaeljaylissner.com/blog/using-pylint-in-geany#comments

这篇博客说要将build命令设置为

 pylint -r no "%f" 
Run Code Online (Sandbox Code Playgroud)

并设置自定义错误正则表达式

(W|E|F):([0-9]+):(.*)
Run Code Online (Sandbox Code Playgroud)

这位意见提供者建议用命令

PYTHONPATH=${PYTHONPATH}:$(dirname %d) pylint --output-format=parseable --reports=n "%f"
Run Code Online (Sandbox Code Playgroud)

可以点击日志中的行号并由geany带到那里.我试过这个并没有对我有用.

在我的项目文件中,我添加了

[build_settings]
error_regex=^(W|E|F):([0-9]+):(.*)
Run Code Online (Sandbox Code Playgroud)

重新加载文件后,结果相同.我正确设置error_regex吗?为什么这不起作用?

python pylint geany

4
推荐指数
1
解决办法
2245
查看次数

在mercurial中如何获得回购的两个版本号之间的区别?

我希望hg为每个在两个不同版本号之间更改的文件输出diff.

这可能吗?

mercurial

2
推荐指数
1
解决办法
118
查看次数

malloced内存页面可以使用多少?

#include <unistd.h>
(size_t) sysconf(_SC_PAGESIZE);
Run Code Online (Sandbox Code Playgroud)

sysconf(_SC_PAGESIZE)告诉我,我的操作系统和处理器上的内存页面大小为4096.在内存页面中的4096个字节中,有多少可用于数据,有多少是开销/元数据?

我有一个应用程序,我通过将经常访问的指针打包到同一个缓存块中来优化缓存局部性,并且需要知道整个内存页是否可用,或者我是否将通过填充整个内存页来查看内存页边界.

c c++ malloc optimization performance

2
推荐指数
1
解决办法
204
查看次数