я не могу откомпилировать код может кто подскажет что не так, испл borland compiler 5.5 код test.h Код (Text): #ifndef TEST_H #define TEST_H float gdtDegToRad(float deg); #endif код test.cpp Код (Text): #include "test.h" float gdtDegToRad(float deg) { return deg * M_PI / 180.0f; } код my.cpp Код (Text): #include "test.h" int main() { gdtDegToRad(90); return 0; } компилирую файл my.cpp, компилятор выдает ошибку: unresolved external gdtDegToRad(float) referenced from <путь>
да точно работает, но это так неудобно, можно как нибудь через указание одного файла все откомпилировать?
ckunep ИМХО, лучше через makefile'ы. Но можно и батником. Что значит через указание одного файла, если в исходниках два?? Это, можно сказать, основы С.
ckunep За bcc ручусь, но компиляторы, как правило, умеют читать параметры из файла: <compiler>.exe @<response filename>
А можно ли в объявлении класса задавать встроенные ф-ии как-нибудь таким образом: Код (Text): class A { public: inline myFunc(); }; A::myFunc() { ... }
ckunep Можно, только наоборот: Код (Text): class A { public: void myFunc(); }; inline void A::myFunc() { //... }
у меня опять проблема. я объявляю прототипы встроенных ф-ий в заголовочной файле my.h Код (Text): inline int func(int x); реализацию в cpp файле Код (Text): int func(int x) { ... } и когда я подключаю этот заголовочный файл в каком нибудь файле проекта, то компилятор выводит сообщение об ошибке undefined symbol func(int). А если я делаю ф-ию не встроенной, то все компилируется. Что не так?
inline надо писать в реализации, и inline функция будет видна только в пределах одного файла. поэтому всю реализацию inline функции надо вынести в *.h файл.