小编use*_*003的帖子

git一次添加多个文件

我在源目录中有很多.c文件的这个项目,然后我创建项目,项目里面有.o文件,我也想将这些文件推送到存储库,所以不要添加每个.o文件,这是可能的但是......,如何轻松添加.o文件?

git add

30
推荐指数
3
解决办法
7万
查看次数

初始化时是否需要调用pointer = NULL?

当我创建指向某个结构的指针时,我是否必须将其设置为NULL,然后分配它然后使用它?为什么?

c pointers alloc

12
推荐指数
3
解决办法
2万
查看次数

如何将-m elf_i386传递给gcc?

我写的是这样的:

 gcc -m elf_i386
Run Code Online (Sandbox Code Playgroud)

它说:

gcc: error: elf_i386: No such file or directory
Run Code Online (Sandbox Code Playgroud)

基本上我试图在64位系统上编译一个32位程序,但错误:

/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/ld: 
skipping incompatible /usr/lib/libSDL.so when searching for -lSDL
Run Code Online (Sandbox Code Playgroud)

我已经检查了用-m32构建的项目,我可以看到所有*.o文件都是ELF 32位LSB,而/usr/lib/libSDL.so也是ELF 32位LSB ...所以我可能需要将-m elf_i386传递给ld对吗?但是我不直接使用ld我只是使用gcc来编译它.

gcc ld

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

如何正确静态链接到python库?

我已经使用本教程构建了静态 python:(python 版本 3.4.2)

静态编译 Python 解释器?

一切正常,几乎。当我的简单测试应用程序与库链接时:

libpython3.4m.a

这是简单演示的源代码:

using namespace boost::python;
using namespace std;

class World {
private:
    string name;
public:
    void set(string name) {
        this->name = name;
    }
    void greet() {
        printf("name is %s\n", this->name.c_str());
    }
};

typedef boost::shared_ptr< World > world_ptr;

BOOST_PYTHON_MODULE(hello) {
    class_<World>("World")
    .def("greet", &World::greet)
    .def("set", &World::set)
    ;
};
int main ( int argc, char** argv ) {


    Py_NoSiteFlag = 1;
    Py_FrozenFlag = 1;
    //Py_IgnoreEnvironmentFlag = 1;


    Py_SetPythonHome(L".");
    Py_SetProgramName(L"");

    PyImport_AppendInittab("hello",PyInit_hello);

    Py_Initialize();

    try {


        PyRun_SimpleStringFlags("import hello", …
Run Code Online (Sandbox Code Playgroud)

c++ python gcc boost

5
推荐指数
0
解决办法
650
查看次数

在我声明函数内联后,什么可能再次导致多个定义错误?

我有这个包含很多内联函数的头文件,编译后说:函数***的多个定义,函数看起来像这样:

inline int testab(int a, int b)
{
        return a>b;
}
Run Code Online (Sandbox Code Playgroud)

在内联前添加静态后,错误消失了.这是正确的方法吗?或者我错过了什么?我以为我可以在这样的标题中设置内联函数.

c gcc inline header

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

makefile notdir 命令

我的源文件不在我需要做的一个目录中 ../ 或 ../../ 东西。

之后,我需要更改源文件名,例如: ../ex/test.c to obj/test.o

用这个: 命令:

$(OBJDIR) $(notdir $(SOURCECODE:.c=.o))
Run Code Online (Sandbox Code Playgroud)

然而,只有$(SOURCECODE)( ../ex/test.c) 中的第一个文件名被正确重命名为 obj/test.o,其余的看起来都像*.o,没有目录信息。

makefile gnu-make

3
推荐指数
2
解决办法
6207
查看次数

在c中2个unsigned char*之间的memcpy

如何使用memcpy两个指针复制使用a,b两者都是unsigned char *:

  1. a 指向充满数据的内存(unsigned char)
  2. b 甚至没有分配

如何复制ab使用memcpy?第三个参数memcpy需要a以字节为单位指向的内存大小; 怎么弄明白?

c memcpy

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

gcc编译器抱怨char*test的test [0]错误;

我只想写下:

char* test="test";
printf("%s",test[0]);
Run Code Online (Sandbox Code Playgroud)

它说seg故障; 然后我改变 printf("%s",&test[0]);了错误但是这不是我想要的; 控制台打印:"测试"如何从该指针获得值"t"?

c c++ arrays pointers char

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

Realloc和strcpy

我的代码给了我段错误:我不明白,调试器说错误来自于从stored_打印值

char *stored_ = NULL;
char testMessage[15];

//strcpy(stored_, testMessage);

for (int a = 0;a < 10; a++)
{
    sprintf(testMessage,"Message::%i\n",a);
    printf("string is:%s;length is %i\n",testMessage,strlen(testMessage));

    stored_ = (char*) realloc (stored_, sizeof(char) * (strlen(testMessage) * (a+1) ));

    strcpy(&stored_[a], testMessage);
} 

for (int b = 0;b < 10; b++)
{
    printf("inside:|%s|\n",stored_[b]);
}
Run Code Online (Sandbox Code Playgroud)

c realloc segmentation-fault

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

混合c和c ++

我有几个关于混合代码的问题:

  1. 一个基于c的完整项目,如果我想使用c ++库,那么我用纯c代码创建一个包装器,然后构建该共享库,我是否必须更改为g ++而不是gcc编译器?

  2. 如果包装器与库一起编译为静态库怎么办?

c c++ gcc g++

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

标签 统计

c ×6

gcc ×4

c++ ×3

pointers ×2

add ×1

alloc ×1

arrays ×1

boost ×1

char ×1

g++ ×1

git ×1

gnu-make ×1

header ×1

inline ×1

ld ×1

makefile ×1

memcpy ×1

python ×1

realloc ×1

segmentation-fault ×1