Например, если мой код на С ++ включает math.h
чтобы я мог использовать sin()
.
Когда я компилирую свой код, мне нужно добавить компоновщик, то есть:
g++ main.cpp -lm
Итак, мой вопрос: есть ли способ, которым мне не нужно добавлять -lm
?
Во-первых, -lm
- это не "компоновщик", это название библиотеки, с которой вы хотите связать.
Во-вторых, простой ответ на ваш вопрос - нет, нет способа избежать необходимости указывать это - если вы используете подпрограммы из библиотеки, отличной от основной библиотеки C, вам нужно сообщить компилятору, чтобы он знал, куда найти процедуры.
Вы можете рассмотреть возможность использования make
и Makefile
s. Конечно, вам все еще нужны ссылки на библиотеки, но вам больше не нужно думать об этом при компиляции. Это очень удобно, особенно когда вы связываете несколько библиотек.