我在使用两个以上的静态链接库时,只有一个静态链接库有效,就是包含头文件排在第一个的那个,其他的静态链接库在编译时都将函数名提示为未定义变量,请问是怎么回事啊?

解决方案 »

  1.   

    Project->Settings->Link->Input->Object/library modules:
    输入你的静态库文件路径, 可以写对于当前工程的相对路径.
      

  2.   

    #pragma comment (lib, "lib1.lib")
    #pragma comment (lib, "lib2.lib")
      

  3.   

    前面两位没有明白我的意思,我两个lib都是放在工程目录里的,所以不用按照两位所说去做的,请高手指点!
      

  4.   

    如果是编译时的错误,就是头文件没有加进来;如果是链接时的错误(LNK10021),就是静态库没有加进来
      

  5.   

    是编译时出错,提示“error C2065: 'jia' : undeclared identifier”(jia是指第二个lib的函数名),可是我包含了头文件了啊!
    两个lib单独使用时就可以,一起用就有问题,真奇怪!
      

  6.   

    以下是lib的头文件:
    #ifndef _MYMATH_H
    #define _MYMATH_H
    extern "C"
    {
    float jia(float a,float b);
    }
    #endif
    以下是lib的原文件:
    #include "jia.h"
    float jia(float a,float b)
    {
    return a+b;
    }
    很简单的加法运算,再做一类似的减法lib,然后将两个头文件和lib文件拷到对话框程序工程目录中,再将这四个文件加入到工程中,并在对话框程序头部包含两个头文件,奇怪的是,包含头文件时,排在第一个的那个lib没有问题,第二个就有如上的提示错误,调换两个包含头文件的位置,仍是如此!迷茫啊!请高手帮忙啊!
      

  7.   

    头文件是不是少了#include<stdio.h>???
      

  8.   

    #include<stdio.h>
    跟这个有关系吗?
      

  9.   

    检查下:
    #ifndef _MYMATH_H
    #define _MYMATH_H
    是否另一个头文件也这样写?如果不是这样的话你就尝试用命名空间看,估计可能有命名冲突。
      

  10.   

    楼上的大哥说的太对了,我是从例题里照搬的,没想到这里除了问题,顺便问一下
    #ifndef _MYMATH_H,#define _MYMATH_H,这两个的作用是什么?请大哥指教!