小编Jer*_*yes的帖子

'std :: basic_string <char,std :: char_traits <char>,std :: allocator <char >> :: c_str':非标准语法; 使用'&'创建指向成员的指针

我正在尝试创建一个可以读取和编译opengl顶点和片段着色器文件的函数,但是我收到了这个错误:

'std::basic_string<char,std::char_traits<char>,std::allocator<char>>::c_str': non-standard syntax; use '&' to create a pointer to member
Run Code Online (Sandbox Code Playgroud)

我不太清楚如何解决它.这是我的代码:

GLuint shader_load(const GLchar* vertex, const GLchar* fragment) {

std::string ver = file_read_all(vertex);
std::string frag = file_read_all(fragment);

const GLchar* verCode = ver.c_str;
const GLchar* fragCode = frag.c_str;

GLuint program;

GLuint verShader, fragShader;
GLint success;
GLchar log[512];

verShader = glCreateShader(GL_VERTEX_SHADER);
glShaderSource(verShader, 1, &verCode, NULL);
glCompileShader(verShader);
glGetShaderiv(verShader, GL_COMPILE_STATUS, &success);

if (!success) {
    glGetShaderInfoLog(verShader, 512, NULL, log);
    std::cout << "Failed to compile Vertex Shader\n" << log << std::endl;
    return NULL;
} …
Run Code Online (Sandbox Code Playgroud)

c++ opengl

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

未调用 NASM 呼叫标签

我正在 Linux 上使用 NASM 进行一些汇编编码,但遇到了问题。

global _start

section .text

testFunctionName:
    mov rdi, 12
    ret

_start:

    call testFunctionName

    mov rax, 1
    mov rbx, 0
    int 0x80
Run Code Online (Sandbox Code Playgroud)

然后组装和链接:

nasm -felf64 -F dwarf -g program.asm -o program.o
ld program.o -o program
Run Code Online (Sandbox Code Playgroud)

testFunctionName 永远不会跳转到。我使用 GDB 验证了这一点。我还没有在其他地方找到相关的解释。如果有人能解释发生了什么以及如何解决这个问题,我将不胜感激。

linux assembly x86-64 nasm ld

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

标签 统计

assembly ×1

c++ ×1

ld ×1

linux ×1

nasm ×1

opengl ×1

x86-64 ×1