Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Ошибка линковки: Linker command failed with exit code 1

main.cpp
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#include "lss_19_07.h"
 
int d, e;
 
int strncmp(const char *s1, const char *s2, size_t n);
 
int search(char *argv[], const char *param, int argc);
 
int main(int argc, char *argv[]) {
    d = e = 0;
    
    const char *in, *out, *in_, *out_;
    in = "/Users/doublench/Desktop/zxczxc/zxczxc/lss_19_07_in.txt";
    out = "/Users/doublench/Desktop/zxczxc/zxczxc/lss_19_07_out.txt";
    
    if (argc > 1) {
        if (argv[1][0] == '-' && argc > 5) {
            perror("Too much parametеrs...");
            exit(2);
        }
        
        if (argv[1][0] != '-' && argc > 7) {
            in_ = argv[1];
            out_ = argv[2];
            perror("Too much parametеrs...");
            exit(2);
        }
    }
    
    if (argc > 1) {
        int i;
        if (argv[1][0] == '-')
            i = 1;
        else
            i = 3;
        
        for (; i < argc; ++i) {
            if (strncmp(argv[i], "-d", 2) == 0 || strncmp(argv[i], "-e", 2) == 0 ||
                strncmp(argv[i], "-p", 2) == 0 || strncmp(argv[i], "-t", 2) == 0 ||
                strncmp(argv[i], "-h", 2) == 0 || strncmp(argv[i], "-?", 2) == 0) {
            } else {
                perror("Unknown parameter/s...");
                exit(3);
            }
        }
    }
    
    if (argc > 2) {
        int count, i;
        count = i = 0;
        
        char params[4][2] = {{'d', '0'}, {'e', '0'}, {'p', '0'}, {'t', '0'}};
        
        if (argv[1][0] == '-')
            i = 1;
        else
            i = 3;
        
        
        for (; i < argc; ++i) {
            int j;
            for (j = 0; j < 4; ++j) {
                if (argv[i][1] == 'h' || argv[i][1] == '?')
                    count = 1;
                if (argv[i][1] == params[j][0] && params[j][1] != '0')
                    count = 1;
                if (argv[i][1] == params[j][0] && params[j][1] == '0')
                    params[j][1] = '1';
            }
        }
        if (count) {
            perror("Incorrect set of parameters...");
            exit(4);
        }
    }
    
    if (strncmp(argv[1], "-h", 2) == 0 || strncmp(argv[1], "-?", 2) == 0) {
        printf("Usage: lss [input_file_name] [output_file_name] [options]\n");
        printf("Where options include:\n");
        printf(" -d    print debug messages [default OFF]\n");
        printf(" -e    print errors [default OFF]\n");
        printf(" -p    print matrix [default OFF]\n");
        printf(" -t    print execution time [default OFF]\n");
        printf(" -h,-? print help\n");
        exit(0);
    }
    
    if (search(argv, "-e", argc) == 0)
        e = 1;
    
    FILE *fin;
    if (argv[1][0] == '-')
        fin = fopen(in, "r");
    else
        fin = fopen(in_, "r");
    
    if (fin == NULL) {
        if (e == 1)
            perror("File open error...");
        exit(5);
    }
    
    int n;
    if (fscanf(fin, "%d", &n) != 1) {
        if (e == 1)
            perror("Read error...");
        exit(6);
    }
    
    if (n <= 0) {
        if (e == 1)
            perror("Value of n is less or equal 0...");
        exit(7);
    }
    
    double *A, *B, *X;
    if ((A = (double *) malloc(n * n * sizeof(double))) == NULL) {
        if (e == 1)
            perror("Memory allocation error...");
        exit(8);
    }
    
    if ((B = (double *) malloc(n * sizeof(double))) == NULL) {
        if (e == 1)
            perror("Memory allocation error...");
        exit(8);
    }
    if ((X = (double *) malloc(n * sizeof(double))) == NULL) {
        if (e == 1)
            perror("Memory allocation error...");
        exit(8);
    }
    
    int i;
    for (i = 0; i < n * n; ++i)
        if (fscanf(fin, "%lf", &A[i]) != 1) {
            if (e == 1)
                perror("Read error...");
            exit(6);
        }
    
    if (search(argv, "-p", argc) == 0) {
        printf("Matrix A:\n");
        int k;
        for (k = 1; k <= n * n; ++k) {
            printf("%lf ", A[k - 1]);
            if (k % n == 0)
                printf("\n");
        }
        printf("\n");
    }
    
    for (i = 0; i < n; ++i)
        if (fscanf(fin, "%lf", &B[i]) != 1) {
            if (e == 1)
                perror("Read error...");
            exit(6);
        }
    
    if (fclose(fin)) {
        if (e == 1)
            perror("Close error...");
        exit(9);
    }
    
    if (search(argv, "-d", argc) == 0)
        d = 1;
    
    clock_t time;
    if ((time = clock()) == -1) {
        if (e == 1)
            perror("Time is unavailable on this system...");
        exit(10);
    }
    
    if (lss_19_07(n, A, B, X) == -1) {
        FILE *fout;
        
        if (argv[1][0] == '-')
            fout = fopen(out, "wb");
        else
            fout = fopen(out_, "wb");
        
        if (fout == NULL) {
            if (e == 1)
                perror("File open error...");
            exit(5);
        }
        
        if (fprintf(fout, "") < 0) {
            if (e == 1)
                perror("Write error...");
            
            exit(11);
        }
        // TODO: -1 ?
        return -1;
    }
    
    time = clock() - time;
    
    if (search(argv, "-t", argc) == 0)
        printf("Time: %f\n", (double) time);
    
    FILE *fout;
    if (argv[1][0] == '-')
        fout = fopen(out, "wb");
    else
        fout = fopen(out_, "wb");
    
    if (fout == NULL) {
        if (e == 1)
            perror("File open error...");
        exit(5);
    }
    
    if (fprintf(fout, "%d\n", n) < 0) {
        if (e == 1)
            perror("Write error...");
        exit(11);
    }
    
    for (i = 0; i < n; ++i)
        if (fprintf(fout, "%1.9lf\n", X[i]) < 0) {
            if (e == 1)
                perror("Write error...");
            exit(11);
        }
    
    if (fclose(fout)) {
        if (e == 1)
            perror("Close error...");
        exit(9);
    }
    
    free(A);
    free(B);
    free(X);
    
    return 0;
}
 
int strncmp(const char *s1, const char *s2, size_t n) {
    for (; n > 0; s1++, s2++, --n)
        if (*s1 != *s2)
            return ((*(unsigned char *) s1 < *(unsigned char *) s2) ? -1 : +1);
        else if (*s1 == '\0')
            return 0;
    return 0;
}
 
int search(char *argv[], const char *param, int argc) {
    int i;
    
    for (i = 1; i < argc; ++i)
        if (strncmp(argv[i], param, 2) == 0)
            return 0;
    return -1;
}


lss_19_07.c
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
#include "lss_19_07.h"
 
extern int d, e;
 
int lss_19_07(int n, double *A, double *B, double *X) {
  int i, j, k;
  double summ;
  
  clock_t time;
  if ((time = clock()) == -1) {
    if (e == 1)
      perror("Time is unavailable on this system...");
    exit(10);
  }
  
  if (d == 1) {
    printf("Solving l[i][1]...(i = 1, ..., %d)\n", n);
    clock_t time1 = clock() - time;
    printf("Solving done...\n");
    printf("Current time: %f\n\n", (double)time1);
  }
  
  if (A[0] == 0)
    return -1;
    
  if (d == 1)
    printf("Solving u[1][k]...(k = 2, ..., %d)\n", n);
    
  for (k = 1; k < n; ++k)
    A[k] = A[k] / A[0];
    
  if (d == 1) {
    clock_t time2 = clock() - time;
    printf("Solving done...\n");
    printf("Current time: %f\n\n", (double)time2);
  }
  
  for (i = 1; i < n; ++i) {
    if (d == 1)
      printf("Solving l[i][k]...(1<k<=i, i,k = 2, ..., %d)\n", n);
      
    for (k = 1; k <= i; ++k) {
      summ = 0.0;
      for (j = 0; j <= k - 1; ++j)
        summ += A[i * n + j] * A[j * n + k];
      A[i * n + k] = A[i * n + k] - summ;
      if (i == k && A[i * n + k] == 0)
        return -1;
    }
    
    if (d == 1) {
      clock_t time3 = clock() - time;
      printf("Solving done...\n");
      printf("Current time: %f\n\n", (double)time3);
    }
    
    if (d == 1)
      printf("Solving u[i][k]...(k>i>1, i,k = 2, ..., %d)\n", n);
      
    for (k = i + 1; k < n; ++k) {
      summ = 0.0;
      for (j = 0; j <= i - 1; ++j)
        summ += A[i * n + j] * A[j * n + k];
      A[i * n + k] = (A[i * n + k] - summ) / A[i * n + i];
    }
    
    if (d == 1) {
      clock_t time4 = clock() - time;
      printf("Solving done...\n");
      printf("Current time: %f\n\n", (double)time4);
    }
  }
  
  // TODO: проверка несовместимости системы
  if (d == 1)
    printf("Solving Ly=B...\n");
    
  X[0] = B[0] / A[0];
  for (i = 1; i < n; ++i) {
    summ = 0.0;
    for (j = 0; j < i; ++j)
      summ += A[i * n + j] * X[j];
    X[i] = (B[i] - summ) / A[i * n + i];
  }
  
  if (d == 1) {
    clock_t time5 = clock() - time;
    printf("Solving done...\n");
    printf("Current time: %f\n\n", (double)time5);
  }
  
  if (d == 1)
    printf("Solving Ux=y...\n");
    
  for (i = n - 2; i >= 0; --i) {
    summ = 0.0;
    for (j = n - 1; j >= i + 1; --j)
      summ += X[j] * A[i * n + j];
    X[i] = X[i] - summ;
  }
  
  if (d == 1) {
    clock_t time6 = clock() - time;
    printf("Solving done...\n");
    printf("Current time: %f\n\n", (double)time6);
}
 
  return 0;
}


lss_19_07.h
Кликните здесь для просмотра всего текста
C
1
2
3
4
5
6
#ifndef INC_07_LSS_19_07_H
#define INC_07_LSS_19_07_H
 
int lss_19_07(int n, double *A, double *B, double *X);
 
#endif // INC_07_LSS_19_07_H


Добавлено через 9 минут
"lss_19_07(int, double*, double*, double*)", referenced from:


_main in main.o


ld: symbol(s) not found for architecture x86_64


clang: error: linker command failed with exit code 1 (use -v to see invocation)
Ответ:
Сообщение от Doublench
linker command failed
Почем ваш главный файл называется main.cpp?

Если он действительно называется main.cpp, то, как я так понимаю, что речь идет о смешанном С и С++ коде. Тогда С функция lss_19_07 на территории С++ кода должна объявляться как extern "C". Обычно это делается в заголовочном файле вот так

C++
1
2
3
4
5
6
7
8
9
10
11
12
...
#ifdef __cplusplus
extern "C" 
{
#endif
 
int lss_19_07(int n, double *A, double *B, double *X);
 
#ifdef __cplusplus
}
#endif
...
Однако не ясно, действительно ли вам нужен здесь С++. Не переименовать ли вам просто ваш main.cpp в main.c?
Вопрос: [Linker Error] Unable to open file '$(RSFILES).RES'

Добрый день товарищи.У меня следующего рода проблема....Захожу в Builder6 запускаю свой проект и при компиляции выдает ошибку [Linker Error] Unable to open file '$(RSFILES).RES' Не знаю что это.Помогите пожалуйста.(Запускал проект до этого дня и все было в порядке. Зарание Спасибо
Ответ: И еще в папке отсутствует project1.res.При компиляции ошибка...[Linker Error] Unable to open file '$(RSFILES).RES' .Вот поэтому он и не может создать экзешник
Вопрос: Кроссдоменные запросы, заголовок OPTIONS

День добрый.
Опишу проблему.
Отправляем кроссдоменный запрос.
На сервер уходит два запроса, OPTIONS для проверки и следом собственно сам запрос, например GET.
Но проблема в том что в итоге метод выполняется два раза, на запрос OPTIONS и на запрос GET. Так как тело OPTIONS не несет, методы в которые передаются параметры валятся, ну и естественно в базу несколько раз запросы уходят.

C#
1
2
3
4
5
6
7
[HttpGet]
        [HttpOptions]
        public IHttpActionResult Get(int id)
        {
            string res = myConnection.SelectDB("SELECT * FROM APP WHERE ID ="+id);
            return Ok(res);
        }
Выполняется два раза.

Конечно можно везде писать, if (Request.Method.ToString() == "OPTIONS") return Ok(); но это как-то нехорошо
Проблема возникает только с запросами GET.
POST, PUT не требуют его.
Как это настроить и почему это происходит?
Ответ: Решил проблему.

Фильтр

C#
1
2
3
4
5
6
7
8
9
10
11
 public class AllowAjaxAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuting(HttpActionContext actionContext)
        {
            if (actionContext.Request.Method == HttpMethod.Options)
            {
                actionContext.Response = actionContext.Request.CreateResponse(HttpStatusCode.OK);
            }
        }
 
    }
Вопрос: ValueListEditor->Options Как редактировать?

Подскажите как программно прописать свойство goTabs=true в ValueListEditor->Options
Ответ:
Код C++
1
ValueListEditor->Options = ValueListEditor->Options << goTabs;
Вопрос: [Linker Error] - не могу скомпилировать проект

всем привет!

создал приложение, работает как надо, для того чтобы ехе работало на всех компах установил режим РЕЛИЗ, и тут вот такие ошибки:

Код

[C++ Warning] Unit1.cpp(240): W8075 Suspicious pointer conversion
[Linker Error] Unresolved external 'System::__linkproc__ __fastcall LStrClr(void *)' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\LIB\RELEASE\VCLE.LIB|dstring
[Linker Error] Unresolved external 'System::__linkproc__ __fastcall LStrFromPChar(System::AnsiString&, char *)' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\LIB\RELEASE\VCLE.LIB|dstring
[Linker Error] Unresolved external 'System::__linkproc__ __fastcall LStrAsg(void *, const void *)' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\LIB\RELEASE\VCLE.LIB|dstring



Подскажите как решить? 
Ответ:

Вопрос: Linker command failed with exit code 1

Доброго времени суток, господа спецы!
Пока пишу небольшой проект на C++, использую Fedora19 + gedit + clang.
Пришлось пересесть на другой ПК: xubuntu 14.04 + gedit + clang

Проект ни в какую не хочет компиллироваться, линковщик выдает ошибку как в заголовке.
если запустить clang с ключом -v, то имеем:
Код Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
alexx@Alexx:~/Dropbox/teleros$ make teleros 
clang++ -O2 -ggdb3  -Ispl/include -I/usr/include/mysql -O0 -std=c++11 -Wall -Werror -Wno-unused-variable -o teleros teleros.cpp -Lspl/lib -lm -L/usr/lib/mysql -lmysqlclient -v
Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4)
Target: i386-pc-linux-gnu
Thread model: posix
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.8
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.8.2
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.9.1
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.8.2
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9.1
Selected GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.8
 "/usr/bin/clang" -cc1 -triple i386-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -main-file-name teleros.cpp -mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -fuse-init-array -target-cpu pentium4 -target-linker-version 2.24 -v -g -resource-dir /usr/bin/../lib/clang/3.4 -I spl/include -I /usr/include/mysql -internal-isystem /usr/include//c++/4.8 -internal-isystem /usr/include//c++/4.8/i386-linux-gnu -internal-isystem /usr/include//c++/4.8/backward -internal-isystem /usr/include//i386-linux-gnu/c++/4.8 -internal-isystem /usr/bin/../lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8 -internal-isystem /usr/bin/../lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/i686-linux-gnu -internal-isystem /usr/bin/../lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/backward -internal-isystem /usr/bin/../lib/gcc/i686-linux-gnu/4.8/../../../../include/i686-linux-gnu/c++/4.8 -internal-isystem /usr/local/include -internal-isystem /usr/bin/../lib/clang/3.4/include -internal-externc-isystem /usr/bin/../lib/gcc/i686-linux-gnu/4.8/include -internal-externc-isystem /usr/include/i386-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O0 -Wall -Werror -Wno-unused-variable -std=c++11 -fdeprecated-macro -fdebug-compilation-dir /home/alexx/Dropbox/teleros -ferror-limit 19 -fmessage-length 80 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -vectorize-slp -o /tmp/teleros-b5d536.o -x c++ teleros.cpp
clang -cc1 version 3.4 based upon LLVM 3.4 default target i386-pc-linux-gnu
ignoring nonexistent directory "spl/include"
ignoring nonexistent directory "/usr/include//c++/4.8/i386-linux-gnu"
ignoring nonexistent directory "/usr/bin/../lib/gcc/i686-linux-gnu/4.8/../../../../include/c++/4.8/i686-linux-gnu"
ignoring nonexistent directory "/usr/bin/../lib/gcc/i686-linux-gnu/4.8/../../../../include/i686-linux-gnu/c++/4.8"
ignoring nonexistent directory "/include"
ignoring duplicate directory "/usr/include//c++/4.8"
ignoring duplicate directory "/usr/include//c++/4.8/backward"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/mysql
 /usr/include//c++/4.8
 /usr/include//c++/4.8/backward
 /usr/include//i386-linux-gnu/c++/4.8
 /usr/local/include
 /usr/bin/../lib/clang/3.4/include
 /usr/bin/../lib/gcc/i686-linux-gnu/4.8/include
 /usr/include/i386-linux-gnu
 /usr/include
End of search list.
 "/usr/bin/ld" -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -o teleros /usr/bin/../lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crt1.o /usr/bin/../lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crti.o /usr/bin/../lib/gcc/i686-linux-gnu/4.8/crtbegin.o -Lspl/lib -L/usr/lib/mysql -L/usr/bin/../lib/gcc/i686-linux-gnu/4.8 -L/usr/bin/../lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu -L/lib/i386-linux-gnu -L/usr/lib/i386-linux-gnu -L/usr/bin/../lib/gcc/i686-linux-gnu/4.8/../../.. -L/lib -L/usr/lib /tmp/teleros-b5d536.o -lm -lmysqlclient -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/bin/../lib/gcc/i686-linux-gnu/4.8/crtend.o /usr/bin/../lib/gcc/i686-linux-gnu/4.8/../../../i386-linux-gnu/crtn.o
/usr/bin/ld: cannot find -lmysqlclient
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [teleros] Error 1
Прошу вправить руки!
Ответ: блин! посыпаю голову пеплом!
спасибо, взлетело!
Вопрос: Linker error при импорте md5wrapper.h

Появилась проблема после того как захотел сделать генерирование md5 хэша.
Есть рабочий исходник где добывался хэш из файла, переделал на текст.
Теперь хочу перенести это в другую программу. Но билдер (6) выдает ошибку:
1. [Linker Error] Unresolved external 'md5wrapper::~md5wrapper()' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\PREMIUM\UNIT1.OBJ
2. [Linker Error] Unresolved external 'md5wrapper::md5wrapper()' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\PREMIUM\UNIT1.OBJ
3. [Linker Error] Unresolved external 'md5wrapper::getHashFromString(_STL::basic_string<char, _STL::char_traits<char>, _STL::allocator<char> >)' referenced from C:\PROGRAM FILES (X86)\BORLAND\CBUILDER6\PROJECTS\PREMIUM\UNIT1.OBJ

Проблема в md5wrapper.h.
Как работает в исходнике:
C++
1
2
3
4
5
6
7
AnsiString rezall, rezhash;
rezall = "123";
md5wrapper md5;
   AnsiString str;
      std::string hash1 = md5.getHashFromString(rezall.c_str()); // create a hash from a string
      rezhash = String(hash1.c_str());
ShowMessage(rezall);
Если закомментировать эти строки, приложение запускается как обычно. В импорт все добавил.
md5wrapper.h во вложении, если нужно.
Ответ: Русские и не нужно. Спасибо, все работает!
Вопрос: [Linker Fatal Error] Fatal: Unable to open file 'IBCONST.OBJ'

Пожалуйста помогите найти ошибку в программе. Перерыл, но сам нестыковку найти не смог.
[Linker Fatal Error] Fatal: Unable to open file 'IBCONST.OBJ'
Ответ:
Сообщение от Drew17
Помогите найти ошибку
В файле Unit2.cpp видно, что используются дополнительные компоненты ( ibctrls, ibreg ...). Скорее всего это линковщик не находит объектные файлы подключаемых компонентов. Попробуйте найти их на диске; ну или хотя бы паскалевы файлы с такими именами ( ibctrls.pas, ibreg.pas ).
Вопрос: GetEnvironmentVariable(); - ошибка [Linker Error]

Нужно получить несколько переменных среды через GetEnvironmentVariable(); ,подключил SysUtils,пытаюсь скомпилировать готовый код,а линкер бьет ошибку
[Linker Error] Unresolved external '__fastcall Sysutils::GetEnvironmentVariableA(const System::AnsiString)' referenced from D:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ
Как с этим бороться,как исправить?
Код прост до безобразия
Код C++
1
2
3
4
String appdata,localappdata,programfiles;
appdata = GetEnvironmentVariable("APPDATA");
localappdata = GetEnvironmentVariable("LOCALAPPDATA");
programfiles = GetEnvironmentVariable("PROGRAMFILES");
Мне удобней пользоваться GetEnvironmentVariable(); из SysUtils которая принимает как параметр лишь одну строку,чем WinAPI'шной функцией с буфером,мне придется дольше переводить массив char в string,а для меня это крайне нежелательно
Ответ: У меня на 5-й версии BCB с одной только VCL.H вот этим
Код C++
1
2
3
4
5
6
    String appdata,localappdata,programfiles ;
    appdata = getenv("APPDATA");
    localappdata = getenv("LOCALAPPDATA");
 
    Memo1->Lines->Add(appdata);
    Memo1->Lines->Add(localappdata);
можно добиться желаемого
Вопрос: Ошибка при компиляции [Linker Fatal Error] Fatal: Expected a file name:

При компеляции Выдает
[Linker Fatal Error] Fatal: Expected a file name:
Ответ:
Код C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
USEFORM("Unit1.cpp", Form1);
//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
try
{
Application->Initialize();
Application->CreateForm(__classid(TForm1), &Form1);
Application->Run();
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
catch (...)
{
try
{
throw Exception("");
}
catch (Exception &exception)
{
Application->ShowException(&exception);
}
}
return 0;
}
//---------------------------------------------------------------------------
Проект