test01.obj : -6ren">
gpt4 book ai didi

c - __cdecl LNK2019 VS2010 C

转载 作者:行者123 更新时间:2023-11-30 20:34:48 24 4
gpt4 key购买 nike

我正在尝试用 C (VS2010) 实现一些简单的功能。应该很容易。但是,我收到了

error LNK2019: unresolved external symbol "1>test01.obj : error LNK2019: unresolved external symbol "int __cdecl Ex2(int,int)" (?Ex2@@YAHHH@Z) referenced in function _main 1>test01.obj : error LNK2019: unresolved external symbol "void __cdecl Ex1(int *,int)" (?Ex1@@YAXPAHH@Z) referenced in function _main

对于这两个函数,尽管它在我创建第一个函数(Ex1)时起作用。声明和原型(prototype)对我来说看起来不错。只有一个包含函数的 C 文件。我很乐意提供任何建议。

#include <stdio.h>

//Function prototypes/////////////////////////////////

void Ex1(int*, int);
int Ex2(int, int);

/////////////////////////////////////////////////////

int main()
{
int select = 0, i, all_Ex_in_loop = 0, arrsize = 0;
int a = -3, b = 13; // EX 2 variables

int* arrPtr; //EX1 definitions
int arr[] =
{ 7, 5, -8, 3, 4, 21, -10, -3, 2, 4 };
arrsize = sizeof(arr) / sizeof(int);
arrPtr = arr;

printf(
"Run menu once or cyclically?\n(Once - enter 0, cyclically - enter other number) ");
if (scanf_s("%d", &all_Ex_in_loop) == 1)
do
{
for (i = 1; i <= 5; i++)
printf("Ex%d--->%d\n", i, i);
printf("EXIT-->0\n");
do
{
select = 0;
printf("please select 0-5 : ");
scanf_s("%d", &select);
} while ((select < 0) || (select > 5));
switch (select)
{
case 1:
Ex1(arrPtr, arrsize);
break;
case 2:
Ex2(a, b);
break;
//case 3: Ex3(); break;
//case 4: Ex4(); break;
//case 5: Ex5(); break;
}
} while (all_Ex_in_loop && select);
return 0;
}

// ---------------------------------------------- EX1 -------------------------------------------------------------
void Ex1(int* ptr, int size)
{
int i;

printf("Original array: ");
for (i = 0; i < size; i++)
{
printf("%d, ", ptr[i]);
}
for (i = 1; i < size; i++)
{
ptr[i] += ptr[i - 1];
}

printf("\n Updated array: ");
for (i = 0; i < size; i++)
{
printf("%d, ", ptr[i]);
}
printf("\n");

}

//---------------------------------------------------------------- EX2 ------------------------------------------------------------

int Ex2(int a, int b)
{
int firstVal = 0, secVal = 0, num = 0;

printf("Please enter numbers. -1 to finish: ");
while (num != -1)
{
scanf_s("%d", &num);
if (num > (a + b) / 2 && num < b)
{
firstVal += num;
}
if (num > a && num < (a + b) / 2)
{
secVal += num;
}
}

printf("\n The value is: %d", firstVal + secVal);

return firstVal + secVal;
}

最佳答案

非常抱歉,因为我无法重现相同的错误消息。

下面提到了导致此问题的最常见错误。

请检查您是否选择了“新的 Win32 应用程序”而不是“新的 Win32 控制台应用程序”。

此外,还有多种原因会导致链接器问题出现。请彻底检查您的代码。

关于c - __cdecl LNK2019 VS2010 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41422774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com