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