Возможная причина
Я могу только догадываться, что "path/to/my/library/libfuncs.so"
на самом деле не существует.Вы можете проверить это, просто набрав ls "path/to/my/library/libfuncs.so"
.
Я уверен, что
stat () делает не работа
Полагаю, это снова решает проблему "ошибки" в очень хорошо зарекомендовавшей себя библиотеке.
Теоретически возможная причина.
Вы используете $
для имени переменной.Это не разрешено.В стандарте C99 есть следующее:
И базовый, и базовый наборы символов исполнения должны иметь следующие члены: 26 заглавных букв латинского алфавитаA B C D E F G H I J K L M<br/>
N O P Q R S T U V W X Y Z
26 строчных букв латинского алфавитаa b c d e f g h i j k l m<br/>
n o p q r s t u v w x y z
10 десятичных цифр0 1 2 3 4 5 6 7 8 9
следующие 29 графических символов! " # % & ' ( ) * + , - . / :<br/>
; < = > ? [ \ ] ^ _ { | } ~
Далее:
Если ...
любые другие символы встречаются в исходном файле (кроме идентификатора, символаконстанта, строковый литерал, имя заголовка, комментарий или токен предварительной обработки, который никогда не преобразуется в токен),
угадайте, что?** барабанная дробь **
поведение не определено.
Вечеринка. но я думаю, что это первая причина.